HttpClient 访问 https 出现peer can't
package util;
import java.security.cert.CertificateException;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import javax.security.cert.X509Certificate;
import org.apache.http.client.HttpClient;
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 org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
public class WebClientDevWrapper {
public static HttpClient wrapClient(HttpClient base) {
try {
SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager tm = new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] arg0,
String arg1) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] arg0,
String arg1) throws CertificateException {
}
@Override
public void checkClientTrusted(
java.security.cert.X509Certificate[] chain,
String authType) throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public void checkServerTrusted(
java.security.cert.X509Certificate[] chain,
String authType) throws CertificateException {
// TODO Auto-generated method stub
}
};
ctx.init(null, new TrustManager[] { tm }, null);
SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("https", 443, ssf));
ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(registry);
return new DefaultHttpClient(mgr, base.getParams());
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
public static HttpClient getClient(HttpClient client){
return wrapClient(client);
}
}
最新文章
- A Font Lover
- how spring resolves a request
- nodejs学习笔记<;三>;关于路由(url)
- 使用RockMongo管理MongoDB
- HDU 2126 (背包方法数) Buy the souvenirs
- TIMAC 学习笔记(二)
- jQuery Table2CSV插件(表格转CSV) 完美支持colspan和rowspan
- store procedure example
- Java开源建站工具
- 创建组合索引SQL从1个多小时到1S的案例
- JS正则表达式收集篇
- MapReduce程序依赖的jar包
- MyBatis CRUD Java POJO操作
- SaaS模式应用之多租户系统开发(单数据库多Schema设计)
- [转载] FreeMarker教程
- TextView 的新特性,Autosizing 到底是如何实现的? | 源码分析
- CURL post/get提交
- 使用后台线程BackgroundWorker处理任务的总结
- CString 成员函数用法
- python 全栈开发,Day91(Vue实例的生命周期,组件间通信之中央事件总线bus,Vue Router,vue-cli 工具)
热门文章
- react-transition-group v2 用法概述
- HDU 1033 Edge[地图型模拟/给你一串字符串,A代表以此点为参照顺时针90&#176;,V代表逆时针90&#176;]
- Codeforces 922F Divisibility (构造 + 数论)
- 快速建立ssh互信(转)
- 从C的声明符到Objective-C的Blocks语法
- 实例化Spring容器的两种常用方式
- Codis的安装
- jquery插件jTemplates使用方法
- 使用聚合数据API查询快递数据-短信验证码-企业核名
- 数据结构基础-Hash Table详解(转)