java实现httpclient发送post请求
来源:互联网 发布:网络拓扑结构 编辑:程序博客网 时间:2024/04/20 16:36
需求:现在要在java后端接口中直接请求客户提供的其他接口来获取所需要的数据,那么就需要用到httpclient来做,下面做一个实现以记录...
第一步:导入所需要的jar包并写一个工具类
1.post请求工具类
因为我们需要的协议是https协议,所以我做了一个httpsPostUtil
package com.qs.util;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.util.EntityUtils;/** * 利用HttpClient进行post请求的工具类 * * @author Devin <xxx> * @ClassName: HttpClientUtil * @Description: TODO * @date 2017年2月7日 下午1:43:38 */public class HttpsPostUtil { public static String doPost(String url, String charset) { HttpClient httpClient = null; HttpPost httpPost = null; String result = null; try { httpClient = new SSLClient(); httpPost = new HttpPost(url); HttpResponse response = httpClient.execute(httpPost); if (response != null) { HttpEntity resEntity = response.getEntity(); if (resEntity != null) { result = EntityUtils.toString(resEntity, charset); } } } catch (Exception ex) { ex.printStackTrace(); } return result; }}
2.用于进行Https请求的HttpClient
package com.qs.util;import org.apache.http.conn.ClientConnectionManager;import org.apache.http.conn.scheme.Scheme;import org.apache.http.conn.scheme.SchemeRegistry;import org.apache.http.conn.ssl.SSLSocketFactory;import org.apache.http.impl.client.DefaultHttpClient;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;/** * 用于进行Https请求的HttpClient * * @author Devin <xxx> * @ClassName: SSLClient * @Description: TODO * @date 2017年2月7日 下午1:42:07 */public class SSLClient extends DefaultHttpClient { public SSLClient() throws Exception { super(); SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; ctx.init(null, new TrustManager[]{tm}, null); SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); ClientConnectionManager ccm = this.getConnectionManager(); SchemeRegistry sr = ccm.getSchemeRegistry(); sr.register(new Scheme("https", 443, ssf)); }}
第二步:java中调用方式
String url = "https://www.aaa.com/sss/?a=" + a + "&b=" + b + "&c=" + c + "&d=" + d;String httpsRtn = HttpsPostUtil.doPost(url, "UTF-8");Map<String, Object> json = mapper.readValue(httpsRtn, Map.class);String id = (String) json.get("id");
如果有什么问题,或者缺什么工具,jar之类的 请联系我 464744895@qq.com
阅读全文
0 0
- java实现httpclient发送post请求
- java httpclient发送post get 请求
- Java HttpClient Post请求发送数据乱码
- Httpclient发送POST请求
- httpClient发送post请求
- HttpClient发送post请求
- httpclient发送post请求
- HttpClient 发送 POST 请求
- httpclient发送post请求
- httpClient发送post请求
- httpclient 发送post请求
- Java使用HttpClient发送Get请求和Post请求
- 用HttpClient发送post请求
- 使用HttpClient发送POST请求
- 使用httpclient发送post请求
- Java使用HttpClient实现Post请求
- Java使用HttpClient实现Post请求
- Java类实现发送Http请求(HttpClient)
- Netty4.0学习笔记系列之三:构建简单的http服务
- 解决XXX.dll already loaded in another classloader问题
- 织梦按顺序排列和随机排列
- 设计模式的艺术之道--简单工厂模式
- 草根seo解释反向链接是什么意思?
- java实现httpclient发送post请求
- Mac/MacBookPro解决运行卡顿问题(非配置问题)
- 消除类游戏
- ?:pattern ?=pattern ?!pattern 的理解
- 三大查询
- 利用array判断列表有图片调图片,没图片留空
- java swing实现喜羊羊与灰太狼推箱子游戏
- WebSocketHandler.ashx代码
- 汇编中retn 4的含义详析