hxh372044716
httpclient 包的https协议使用
import
java.security.cert.CertificateException;
import
java.security.cert.X509Certificate;
import
javax.net.ssl.SSLContext;
import
javax.net.ssl.TrustManager;
import
javax.net.ssl.X509TrustManager;
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;
//用于进行Https请求的HttpClient
public
class
SSLClient
extends
DefaultHttpClient{
public
SSLClient()
throws
Exception{
super
();
SSLContext ctx = SSLContext.getInstance(
"TLS"
);
X509TrustManager tm =
new
X509TrustManager() {
@Override
public
void
checkClientTrusted(X509Certificate[] chain,
String authType)
throws
CertificateException {
}
@Override
public
void
checkServerTrusted(X509Certificate[] chain,
String authType)
throws
CertificateException {
}
@Override
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));
}
新建一个类访问发送POST方法处理
import
java.util.ArrayList;
import
java.util.Iterator;
import
java.util.List;
import
java.util.Map;
import
java.util.Map.Entry;
import
org.apache.http.HttpEntity;
import
org.apache.http.HttpResponse;
import
org.apache.http.NameValuePair;
import
org.apache.http.client.HttpClient;
import
org.apache.http.client.entity.UrlEncodedFormEntity;
import
org.apache.http.client.methods.HttpPost;
import
org.apache.http.message.BasicNameValuePair;
import
org.apache.http.util.EntityUtils;
/*
* 利用HttpClient进行post请求的工具类
*/
public
class
HttpClientUtil {
public
String doPost(String url,Map<String,String> map,String charset){
HttpClient httpClient =
null
;
HttpPost httpPost =
null
;
String result =
null
;
try
{
httpClient =
new
SSLClient();
httpPost =
new
HttpPost(url);
//设置参数
List<NameValuePair> list =
new
ArrayList<NameValuePair>();
Iterator iterator = map.entrySet().iterator();
while
(iterator.hasNext()){
Entry<String,String> elem = (Entry<String, String>) iterator.next();
list.add(
new
BasicNameValuePair(elem.getKey(),elem.getValue()));
}
if
(list.size() >
0
){
UrlEncodedFormEntity entity =
new
UrlEncodedFormEntity(list,charset);
httpPost.setEntity(entity);
}
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;
}
}
}
posted on 2016-03-31 17:55
花少
阅读(181)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2016年3月
>
日
一
二
三
四
五
六
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
统计
随笔 - 2
文章 - 0
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我的参与
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
2016年3月 (2)
搜索
最新评论
阅读排行榜
1. maven+spring+tomcat搭建框架(232)
2. httpclient 包的https协议使用(181)
评论排行榜
1. httpclient 包的https协议使用(0)
2. maven+spring+tomcat搭建框架(0)