HTTP请求 的一系列方法总结


  /**
* *******************************传统请求--开始**************************************
* */ /**
* HttpClient 发送 Post 请求
* @param url 路径:String
* @param mapParam 参数:java.util.Map
* @return
*/
public static String sendClientPost(String url,Map<String,String> headers,Map<String,String> mapParam){
return httpPost(url, headers,new JSONObject(mapParam), false);
} /**
* HttpClient 发送 Post 请求
* @param url 路径:String
* @param JsonObjectParam 参数:org.json.JSONObject
* @return
*/
public static String sendClientPost(String url,Map<String,String> headers,JSONObject JsonObjectParam){
return httpPost(url, headers,JsonObjectParam, false);
} /**
* HttpClient 发送 Get 请求
* @param url 路径:String
* @return
*/
public static String sendClientGet(String url){
return httpGet(url,null);
}
/**
* HttpClient 发送 Get 请求
* @param url 路径:String
* @param headers Map<String,String>
* @return
*/
public static String sendClientGet(String url,Map<String,String> headers){
return httpGet(url,headers);
} /**
* HttpClient 发送 Delete 请求
* @param url 路径:String
* @return
*/
public static String sendClientDelete(String url){
return httpDelete(url,null);
}
/**
* HttpClient 发送 Delete 请求
* @param url 路径:String
* @param headers Map<String,String>
* @return
*/
public static String sendClientDelete(String url,Map<String,String> headers){
return httpDelete(url,headers);
} /**
* urlConnectionGet
* @param url 路径
* @return
*/
public static String sendConnectionGet(String url,String param){
return sendGet(url,param);
} /**
* 向指定 URL 发送POST方法的请求
* @param url 发送请求的 URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
public static String sendConnectionPost(String url,String param){
return sendPost(url,param);
}
/**
* *******************************传统请求--结束**************************************
* */ /**
* *******************************Jsoup请求--开始**************************************
* */ /**
* 发送 POST 请求
* @param url 请求地址
* @param cookie cookie:String
* @param headers 头信息:Map<String,String>
* @param params 参数:Map<String,Object>
* @return String
*/
public static String sendJsoupPost(String url,String cookie,Map<String,String> headers,Map<String,Object> params,boolean isJsonParam) {
String sendRequest = sendRequest(url, cookie, headers,params, "POST",isJsonParam);
return sendRequest;
} /**
* 发送 POST 请求
* @param url 请求地址
* @param headers 头信息:Map<String,String>
* @param params 参数:Map<String,Object>
* @return String
*/
public static String sendJsoupPost(String url,Map<String,String> headers,Map<String,Object> params,boolean isJsonParam) {
String sendRequest = sendRequest(url, null, headers,params, "POST", isJsonParam);
return sendRequest;
} /**
* 发送 POST 请求
* @param url 请求地址
* @param cookie cookie:String
* @param headers 头信息:Map<String,String>
* @param params 参数:Map<String,Object>
* @return String
*/
public static String sendJsoupPost(String url,Map<String,Object> params,boolean isJsonParam) {
String sendRequest = sendRequest(url, null, null,params, "POST", isJsonParam);
return sendRequest;
} /**
* 发送 POST 请求
* @param url 请求地址
* @return String
*/
public static String sendJsoupPost(String url) {
String sendRequest = sendRequest(url, null, null,null, "POST",false);
return sendRequest;
} /**
* 发送 GET 请求
* @param url 请求地址: String
* @param cookie cookie:String
* @param headers 头信息:Map<String,String>
* @param params 参数:Map<String,Object>
* @return String
*/
public static String sendJsoupGet(String url,String cookie,Map<String,String> headers,Map<String,Object> params) {
String sendRequest = sendRequest(url, cookie, headers,params, "GET",false);
return sendRequest;
} /**
* 发送 GET 请求
* @param url 请求地址: String
* @param headers 头信息:Map<String,String>
* @param params 参数:Map<String,Object>
* @return String
*/
public static String sendJsoupGet(String url,Map<String,String> headers,Map<String,Object> params) {
String sendRequest = sendRequest(url, null, headers,params, "GET",false);
return sendRequest;
} /**
* 发送 GET 请求
* @param url 请求地址: String
* @return String
*/
public static String sendJsoupGet(String url) {
String sendRequest = sendRequest(url, null, null,null, "GET",false);
return sendRequest;
} /**
* 发送 GET 请求
* @param url 请求地址: String
* @param params 参数:Map<String,Object>
* @return String
*/
public static String sendJsoupGet(String url,Map<String,Object> params) {
String sendRequest = sendRequest(url, null, null,params, "GET",false);
return sendRequest;
} /**
* *******************************Jsoup请求--结束**************************************
* */ /**
* *******************************获取网页对象--开始**************************************
* */ /**
* 发送 GET 请求
* @param url 请求地址: String
* @return Document
*/
public static Document sendJsoupGetDocument(String url) {
Document sendRequestDocument = sendRequestDocument(url, null, null,null, "GET",false);
return sendRequestDocument;
} /**
* 发送 GET 请求
* @param url 请求地址: String
* @param cookie cookie:String
* @param headers 头信息:Map<String,String>
* @param params 参数:Map<String,Object>
* @return Document
*/
public static Document sendJsoupGetDocument(String url,String cookie,Map<String,String> headers,Map<String,Object> params) {
Document sendRequest = sendRequestDocument(url, cookie, headers,params, "GET",false);
return sendRequest;
} /**
* 发送 POST 请求
* @param url 请求地址: String
* @return Document
*/
public static Document sendJsoupPostDocument(String url) {
Document sendRequestDocument = sendRequestDocument(url, null, null,null, "POST",false);
return sendRequestDocument;
} /**
* 发送 POST 请求
* @param url 请求地址
* @param cookie cookie:String
* @param headers 头信息:Map<String,String>
* @param params 参数:Map<String,Object>
* @return Document
*/
public static Document sendJsoupPostDocument(String url,String cookie,Map<String,String> headers,Map<String,Object> params,boolean isJsonParam) {
Document sendRequest = sendRequestDocument(url, cookie, headers,params, "POST", isJsonParam);
return sendRequest;
} /**
* *******************************获取网页对象--结束**************************************
* */ /**
* post请求
* @param url url地址
* @param jsonParam 参数
* @param noNeedResponse 不需要返回结果
* @return
*/
private static String httpPost(String url,Map<String,String> headers,JSONObject jsonParam, boolean noNeedResponse){
//post请求返回结果
CloseableHttpClient httpClient = HttpClients.createDefault();
// DefaultHttpClient httpClient = new DefaultHttpClient();
String jsonResult = null;
HttpPost method = new HttpPost(url); if(headers!=null){
Set<String> keySet = headers.keySet();
for (String key : keySet) {
method.addHeader(key, headers.get(key));
}
}
try {
if (null != jsonParam) {
//解决中文乱码问题
StringEntity entity = new StringEntity(jsonParam.toString(), "UTF-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
method.setEntity(entity);
}
HttpResponse result = httpClient.execute(method);
url = URLDecoder.decode(url, "UTF-8");
/**请求发送成功,并得到响应**/
//if (result.getStatusLine().getStatusCode() == 200) {
try {
/**读取服务器返回过来的json字符串数据**/
jsonResult = EntityUtils.toString(result.getEntity());
if (noNeedResponse) {
return null;
}
/**把json字符串转换成json对象**/
} catch (Exception e) {
logger.error("HttpPost请求提交失败:" + url, e);
}
//}
} catch (Exception e) {
logger.error("HttpPost请求提交失败:" + url, e);
}
return jsonResult;
} /**
* 发送get请求
* @param url 路径
* @return
*/
private static String httpGet(String url,Map<String,String> headers){
//get请求返回结果
String jsonResult = null;
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
// DefaultHttpClient client = new DefaultHttpClient();
//发送get请求
HttpGet request = new HttpGet(url);
if(headers!=null){
Set<String> keySet = headers.keySet();
for (String key : keySet) {
request.addHeader(key, headers.get(key));
}
} HttpResponse response = httpClient.execute(request); /**请求发送成功,并得到响应**/
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
/**读取服务器返回过来的json字符串数据**/
jsonResult = EntityUtils.toString(response.getEntity());
} else {
logger.error("HttpGet请求提交失败:" + url);
}
} catch (Exception e) {
logger.error("HttpGet请求提交失败:" + url, e);
}
return jsonResult;
} /**
* 发送get请求
* @param url 路径
* @return
*/
private static String httpDelete(String url,Map<String,String> headers){
//get请求返回结果
String jsonResult = null;
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
// DefaultHttpClient client = new DefaultHttpClient();
//发送get请求
HttpDelete request = new HttpDelete(url);
if(headers!=null){
Set<String> keySet = headers.keySet();
for (String key : keySet) {
request.addHeader(key, headers.get(key));
}
} HttpResponse response = httpClient.execute(request); /**请求发送成功,并得到响应**/
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
/**读取服务器返回过来的json字符串数据**/
jsonResult = EntityUtils.toString(response.getEntity());
} else {
logger.error("HttpDelete请求提交失败:" + url);
}
} catch (Exception e) {
logger.error("HttpDelete请求提交失败:" + url, e);
}
return jsonResult;
} /**
* 向指定URL发送GET方法的请求
* @param url 发送请求的URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return URL 所代表远程资源的响应结果
*/
private static String sendGet(String url, String param) { String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
// Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
} /**
* 向指定 URL 发送POST方法的请求
* @param url 发送请求的 URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
private static String sendPost(String url, String param) { PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}catch(Exception ex){
ex.printStackTrace();
}
}
return result;
} /** 发送 利用JSOUP 发送 Request 请求
* @param url 请求地址: String
* @param cookie cookie:String
* @param headers 头信息:Map<String,String>
* @param params 参数:Map<String,Object>
* @param method 请求方式: String,GER OR POST
* @return String
*/
private static String sendRequest(String url,String cookie,Map<String,String> headers,Map<String,Object> params,String method,boolean isJsonParam) {
String res = null;
try {
Document document = null;
Connection connect = getConnection(url, cookie, headers, params,isJsonParam);
connect.ignoreContentType(true);
if("GET".equals(method)) {
document = connect.get();
}else if("POST".equals(method)) {
document = connect.post();
} if(document != null) {
res = document.body().text();
}
} catch (Exception e) {
e.printStackTrace();
}
return res;
} /** 发送 利用JSOUP 发送 Request 请求
* @param url 请求地址: String
* @param cookie cookie:String
* @param headers 头信息:Map<String,String>
* @param params 参数:Map<String,Object>
* @param method 请求方式: String,GER OR POST
* @return String
*/
private static Document sendRequestDocument(String url,String cookie,Map<String,String> headers,Map<String,Object> params,String method,boolean isJsonParam) {
Document document = null;
try {
Connection connect = getConnection(url, cookie, headers, params,isJsonParam);
connect.ignoreContentType(true);
if("GET".equals(method)) {
document = connect.get();
}else if("POST".equals(method)) {
document = connect.post();
}
} catch (Exception e) {
e.printStackTrace();
}
return document;
} /**
* 获取JSOUP Connection
* @param url 请求地址: String
* @param cookie cookie:String
* @param headers 头信息:Map<String,String>
* @param params 头信息:Map<String,Object>
* @return Connection org.jsoup.Connection
*/
private static Connection getConnection(String url,String cookie,Map<String,String> headers,Map<String,Object> params,boolean isJsonParam) {
Connection connect = Jsoup.connect(url);
if(cookie != null) {
connect.header("Cookie", cookie);
} if(params != null) {
Map<String,String> param = new HashMap<String,String>();
Set<String> keySet = params.keySet();
for (String key : keySet) {
if(params.get(key) != null){
param.put(key, params.get(key)==null ? null : params.get(key)+"");
}
}
if(isJsonParam){
connect.requestBody(new JSONObject(param).toString());
// connect.postDataCharset(new JSONObject(param).toString());
}else{ connect.data(param);
}
} if(headers!= null) {
connect.headers(headers);
}else if(headers==null) {
connect.header("Accept", "application/json");
connect.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0");
}
return connect;
}

HTTP 请求 的方法Util的更多相关文章

  1. 使用SpringAOP获取一次请求流经方法的调用次数和调用耗时

    引语 作为工程师,不能仅仅满足于实现了现有的功能逻辑,还必须深入认识系统.一次请求,流经了哪些方法,执行了多少次DB操作,访问了多少次文件操作,调用多少次API操作,总共有多少次IO操作,多少CPU操 ...

  2. 【JAVA】通过URLConnection/HttpURLConnection发送HTTP请求的方法(一)

    Java原生的API可用于发送HTTP请求 即java.net.URL.java.net.URLConnection,JDK自带的类: 1.通过统一资源定位器(java.net.URL)获取连接器(j ...

  3. SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据

    SpringMVC框架下,如果用ajax向后台请求得方法如果使用@Responsebody返回布尔值的话,ajax得不到任何的回传数据. 但是如果返回String类型,就是正常的. 测试了下代码写得没 ...

  4. php之curl实现http与https请求的方法

    原文地址:http://m.jb51.net/show/56492   这篇文章主要介绍了php之curl实现http与https请求的方法,分别讲述了PHP访问http网页与访问https网页的实例 ...

  5. thinkphp 定位查询 Model:last您所请求的方法不存在!

    thinkphp 定位查询 Model:last您所请求的方法不存在!   用thinkphp3.1做项目的时候为了获取记录表中最后一个id用到了last()方法,出现了这个错误:Model:last ...

  6. Nginx反向代理、CORS、JSONP等跨域请求解决方法总结

    由于 Javascript 同源策略的存在使得一个源中加载来自其它源中资源的行为受到了限制.即会出现跨域请求禁止. 通俗一点说就是如果存在协议.域名.端口或者子域名不同服务端,或一者为IP地址,一者为 ...

  7. webServices 使用GET请求接口方法

    webServices  若要使用GET请求接口方法在Web.config 下添加这段 <webServices>     <protocols>       <add  ...

  8. legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法)

    legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法) 一.总结 一句话总结:会执行的,所以写base控制器里面的方法要注意,base控制器里面的方法要以查数据为 ...

  9. 发送http请求的方法

    在http/1.1 协议中,定义了8种发送http请求的方法 get post options head put delete trace connect patch. 根据http协议的设计初衷,不 ...

随机推荐

  1. C++解析(30):关于指针判别、构造异常和模板二义性的疑问

    0.目录 1.指针的判别 2.构造中的异常 2.1 如果构造函数中抛出异常会发生什么? 2.2 如果析构函数中抛出异常会发生什么? 3.令人迷惑的写法 3.1 模板中的二义性 3.2 函数异常声明 4 ...

  2. 【Treeview】遍历本地磁盘

    一.前言 Treeview控件常用于遍历本地文件信息,通常与Datagridview与ImageList搭配.ImageList控件用于提供小图片给TreeView控件,DatagridView通常显 ...

  3. linux内核设计与实现第七周读书笔记

    第七章 链接 链接(linking)是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储并执行.链接可以执行于编译时(compile time),也就是在源代 ...

  4. poj1816 Wild Words

    Wild Words Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5567   Accepted: 1475 Descri ...

  5. C++实现人员信息管理系统模拟

    利用C++语言实现基本的学生信息管理系统: 要求: 1-设置管理员密码 2-人员数据有:姓名,性别等基本的信息 3-可以添加,删除,保存,统计 #include<iostream> #in ...

  6. qq快速登陆

    http://www.cnblogs.com/1996V/p/7481823.html qq快速登陆

  7. c语言时间计算

    C语言使用time_t结构体表示时间戳,它本质上是个long类型. 我们可以使用如下函数获取当前时间的时间戳: time_t time(time_t* timer) 函数功能:得到从标准计时点(一般是 ...

  8. php桶排序简单实现

    桶排序中最重要的环节是映射函数. 初步学习桶排序的过程中,映射比较简单.实现代码如下: /** * 第一种桶排序的办法,每个桶存储相同值的数据 * */ function bucketSort($no ...

  9. 跟我一起写Makefile(二)

    Makefile 总述——————— 一.Makefile里有什么? Makefile里主要包含了五个东西:显式规则.隐晦规则.变量定义.文件指示和注释. 1.显式规则.显式规则说明了,如何生成一个或 ...

  10. VC6完整项目代码升级到VS2010

    VC6完整项目代码升级到VS2010,有需要请联系我,专业C++开发,邮箱153786575@qq.com