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);
    }

    }

  • 相关阅读:
    php+GTK2 学习第二篇
    PHPMailer + qq邮箱 实现邮件发送
    HTTP状态码200、301、403、404、500等(转)
    LNMP环境搭建(转载)
    PHP+GTK2 初体验,简单计算器客户端
    mysql 用户权限管理(转)
    提高php执行效率的10条编程习惯(转)
    添加php拓展(以phppcntl及phpredis及phppcntl为例)
    centos7 &后台运行 受终端关闭影响问题
    sklearn学习笔记之简单线性回归
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/3837131.html
Copyright © 2011-2022 走看看