zoukankan      html  css  js  c++  java
  • 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);
    }

    }

  • 相关阅读:
    while和do while习题
    Flexigrid折行显示问题
    【Cocos2d-x游戏引擎开发笔记(25)】XML解析
    ruby简单的基本 6
    原因好消息: PSP游戏自己主动算法设计(两)
    《约会专家》拖车【约会宝典】总结
    C++在stack的deque实现
    hdu 4869
    SQL Server 2008杀数据库连接
    BestCoder-Round#33
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/3837131.html
Copyright © 2011-2022 走看看