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协议的设计初衷,不 ...
随机推荐
- CSS预处理语言-less 的使用
Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展. Less 可以运行在 Node 或浏览器端. Less的编译处理 作为一 ...
- [五]SpringBoot 之 连接数据库(JPA-Hibernate)
在具体介绍之前,先了解下什么是JPA JPA全称JavaPersistence API.JPA通过JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. http: ...
- Day 2 笔记 数据结构
Day 2 笔记 数据结构 1.栈.队列.链表等数据结构都是线性数据结构 2.树状数据结构:二叉堆,线段树,树状数组,并查集,st表... 优先队列其实与二叉堆的存储方式并不相同. 一.二叉堆 1.二 ...
- 二分图匹配模板(dfs+bfs)
dfs版: bool dfs(int u) { for(int i = head[u]; ~i; i = e[i].next) { int v = e[i].v; if(!vis[v]) { vis[ ...
- 【基础】一个简单的MVC实例及故障排除
Controller: public ActionResult Index() { string setting = "ApplicationServices"; var conn ...
- POJ.3279 Fliptile (搜索+二进制枚举+开关问题)
POJ.3279 Fliptile (搜索+二进制枚举+开关问题) 题意分析 题意大概就是给出一个map,由01组成,每次可以选取按其中某一个位置,按此位置之后,此位置及其直接相连(上下左右)的位置( ...
- linux系统启动自动激活网卡的解决方法
linux每次启动的时候网卡都需要激活才能上网,实在是很麻烦. 上网找了找资料,最后是这样解决的: # vi /etc/sysconfig/network-scripts/ifcfg-eth0 ...
- Linux(三)高级文本处理命令
一.cut (cut 命令可以从一个文本文件或者文本流中提取文本列 ) 1.cut语法 cut -d '分隔字符' -f fields 用于有特定分隔字符 cut -c 字符区间 ...
- winform登录代码
Program.cs文件中 static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThr ...
- ss命令用法小记
By francis_hao Nov 4,2017 ss是一个查看socket的实用工具 概要 ss [options] [ FILTER ] 描述 ss可以查看socket的统计信息, ...