tinguo002
避免HttpClient的”SSLPeerUnverifiedException: peer not authenticated”异常
/**解决办法**
* 1添加一个方法
* 2调用这个方法生成一个新的httpClient对象
**/
import
java.security.SecureRandom;
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.client.HttpClient;
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;
public
class
HttpUtils
{
private
HttpClient httpClient;
public
HttpUtils()
{
httpClient
=
null
;
}
public
void
openConnection()
{
httpClient
=
new
DefaultHttpClient();
httpClient
=
getSecuredHttpClient(httpClient
}
);
/** */
/**
* 避免HttpClient的”SSLPeerUnverifiedException: peer not authenticated”异常
* 不用导入SSL证书
*
*
@author
shipengzhi(shipengzhi@sogou-inc.com)
*
*/
private
static
DefaultHttpClient getSecuredHttpClient(HttpClient httpClient)
{
final
X509Certificate[] _AcceptedIssuers
=
new
X509Certificate[]
{}
;
try
{
SSLContext ctx
=
SSLContext.getInstance(
"
TLS
"
);
X509TrustManager tm
=
new
X509TrustManager()
{
@Override
public
X509Certificate[] getAcceptedIssuers()
{
return
_AcceptedIssuers;
}
@Override
public
void
checkServerTrusted(X509Certificate[] chain,
String authType)
throws
CertificateException
{
}
@Override
public
void
checkClientTrusted(X509Certificate[] chain,
String authType)
throws
CertificateException
{
}
}
;
ctx.init(
null
,
new
TrustManager[]
{ tm }
,
new
SecureRandom());
SSLSocketFactory ssf
=
new
SSLSocketFactory(ctx,
SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
ClientConnectionManager ccm
=
httpClient.getConnectionManager();
SchemeRegistry sr
=
ccm.getSchemeRegistry();
sr.register(
new
Scheme(
"
https
"
,
443
, ssf));
return
new
DefaultHttpClient(ccm, httpClient.getParams());
}
catch
(Exception e)
{
System.out.println(
"
=====:=====
"
);
e.printStackTrace();
}
return
null
;
}
}
欢迎大家访问我的个人网站
萌萌的IT人
posted on 2014-04-09 17:34
一堣而安
阅读(975)
评论(0)
编辑
收藏
所属分类:
java
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
Linux 下配置 JDK 环境变量
图片转字符串
java中InputStream转化为byte[]数组
tomcat虚拟目录配置
Tomcat的窗口名称修改
java下载网页内容和网络图片
redis使用
java request 获取域名
JAVA反射机制,把JavaBean属性转成字符串
Java String转Float精度不准确问题
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 165
文章 - 0
评论 - 38
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
amchart(1)
(rss)
hibernate
(rss)
java(43)
(rss)
js_css(59)
(rss)
Linux(11)
(rss)
myeclipse(6)
(rss)
oracle(22)
(rss)
sql(5)
(rss)
struts2(3)
(rss)
tomcat(4)
(rss)
web开发协作工具(7)
(rss)
日志(1)
(rss)
测试(1)
(rss)
环境部署(1)
(rss)
软件工程(3)
(rss)
随笔档案
2015年3月 (1)
2014年10月 (1)
2014年8月 (8)
2014年7月 (19)
2014年6月 (4)
2014年5月 (10)
2014年4月 (12)
2014年3月 (2)
2014年2月 (5)
2014年1月 (2)
2013年12月 (12)
2013年11月 (6)
2013年10月 (5)
2013年9月 (2)
2013年7月 (3)
2013年6月 (5)
2013年5月 (4)
2013年4月 (9)
2013年3月 (10)
2013年2月 (3)
2013年1月 (5)
2012年12月 (4)
2012年11月 (8)
2012年9月 (3)
2012年8月 (5)
2012年7月 (10)
2012年6月 (2)
2012年3月 (2)
2012年2月 (1)
2011年11月 (1)
收藏夹
Amchart(4)
(rss)
iReport(2)
(rss)
oracle(2)
(rss)
servlet
(rss)
Tomcat(1)
(rss)
树形(2)
(rss)
搜索
最新评论
1. 31313
31321313
--31231
2. re: myeclipse 8.5最新注册码(过期时间到2016年)
怎么申请注册码
--Ftitd
3. re: myeclipse 8.5最新注册码(过期时间到2016年)
感谢楼主呀,非常感谢
--it码畜
4. re: myeclipse 8.5最新注册码(过期时间到2016年)
可用,多谢!
--liv17
5. re: myeclipse 8.5最新注册码(过期时间到2016年)
感谢!好用!
--yu
阅读排行榜
1. myeclipse开启后卡死、building workspace缓慢 问题解决(49099)
2. myeclipse 8.5最新注册码(过期时间到2016年)(39199)
3. java.lang.NoClassDefFoundError: Could not initialize class 的原因(30047)
4. 手机号码和电话号码的正则表达式(14952)
5. java.net.SocketException: Connection reset 解决方法(14181)
评论排行榜
1. myeclipse 8.5最新注册码(过期时间到2016年)(33)
2. LoadRunner11安装过程中遇到的问题及解决(4)
3. linux tomcat启动过程记录(1)
4. jQuery.validate 中文API (1)
5. racle 在Drop表时的Cascade Constraints(0)
Powered by:
BlogJava
Copyright © 一堣而安