HTTP 请求 的方法Util
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的更多相关文章
- 使用SpringAOP获取一次请求流经方法的调用次数和调用耗时
引语 作为工程师,不能仅仅满足于实现了现有的功能逻辑,还必须深入认识系统.一次请求,流经了哪些方法,执行了多少次DB操作,访问了多少次文件操作,调用多少次API操作,总共有多少次IO操作,多少CPU操 ...
- 【JAVA】通过URLConnection/HttpURLConnection发送HTTP请求的方法(一)
Java原生的API可用于发送HTTP请求 即java.net.URL.java.net.URLConnection,JDK自带的类: 1.通过统一资源定位器(java.net.URL)获取连接器(j ...
- SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据
SpringMVC框架下,如果用ajax向后台请求得方法如果使用@Responsebody返回布尔值的话,ajax得不到任何的回传数据. 但是如果返回String类型,就是正常的. 测试了下代码写得没 ...
- php之curl实现http与https请求的方法
原文地址:http://m.jb51.net/show/56492 这篇文章主要介绍了php之curl实现http与https请求的方法,分别讲述了PHP访问http网页与访问https网页的实例 ...
- thinkphp 定位查询 Model:last您所请求的方法不存在!
thinkphp 定位查询 Model:last您所请求的方法不存在! 用thinkphp3.1做项目的时候为了获取记录表中最后一个id用到了last()方法,出现了这个错误:Model:last ...
- Nginx反向代理、CORS、JSONP等跨域请求解决方法总结
由于 Javascript 同源策略的存在使得一个源中加载来自其它源中资源的行为受到了限制.即会出现跨域请求禁止. 通俗一点说就是如果存在协议.域名.端口或者子域名不同服务端,或一者为IP地址,一者为 ...
- webServices 使用GET请求接口方法
webServices 若要使用GET请求接口方法在Web.config 下添加这段 <webServices> <protocols> <add ...
- legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法)
legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法) 一.总结 一句话总结:会执行的,所以写base控制器里面的方法要注意,base控制器里面的方法要以查数据为 ...
- 发送http请求的方法
在http/1.1 协议中,定义了8种发送http请求的方法 get post options head put delete trace connect patch. 根据http协议的设计初衷,不 ...
随机推荐
- 【转载】Java中的锁机制 synchronized & 偏向锁 & 轻量级锁 & 重量级锁 & 各自优缺点及场景 & AtomicReference
参考文章: http://blog.csdn.net/chen77716/article/details/6618779 目前在Java中存在两种锁机制:synchronized和Lock,Lock接 ...
- Eclipse中使用git提交代码,报错Testng 运行Cannot find class in classpath的解决方案
一.查找原因方式 1.点击Project——>Clear...——>Build Automatically 2.查看问题 二.报错因素 1.提交.xlsx文件 2.提交时,.xlsx文件被 ...
- 一些兼容性的meta标签
<!-- 仅针对IOS的Safari顶端状态条的样式(可选default/black/black-translucent )--> <meta name="apple-mo ...
- splay tree 学习笔记
首先感谢litble的精彩讲解,原文博客: litble的小天地 在学完二叉平衡树后,发现这是只是一个不稳定的垃圾玩意,真正实用的应有Treap.AVL.Splay这样的查找树.于是最近刚学了学了点S ...
- CSS3制作3D水晶糖果按钮
本人仿照20个漂亮 CSS3 按钮效果及优秀的制作教程中的BonBon(Candy)Button实现了其棒棒糖果按钮,如下图所示: 在线演示地址见here. 使用完全使用CSS实现,无需JS.源码如下 ...
- [ACM][2018南京预赛]Sum
一.题面 样例输入: 2 5 8 样例输出: 8 14 二.思路 关键词:线性筛 在Zed的帮助下知道了这是一道线性筛的比较裸的题了.考试过程中肝这道题的时间最久,费了心思找到递推式后,发现根本不是在 ...
- HDU 6038
Function Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- 防止apk反编译的技术分析浅谈--内存修改器篇
声明: 1.本帖转载自http://jingyan.baidu.com/article/a24b33cd509eb719fe002b94.html,仅供自用,勿喷 Apk反编译修改器有很多.拿其中的比 ...
- Jenkins CI Pipeline scripting
Jenkins pipeline is a suite of Jenkins plugins. Pipelines can be seen as a sequence of stages to per ...
- 「git」mac下git提交github代码
1.打开终端,输入 cd -/.ssh 这个是检查你的ssh的是否存在的,如果存在,先将已有的ssh备份,或者将新建的ssh生成到另外的目录下(如果第一次配置一般都是不存在的),不存在,你将会看到如下 ...