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

    }

  • 相关阅读:
    Linux命令行工具之pidstat命令
    Linux命令行工具之vmstat命令
    进程的状态与转换
    curl常用命令
    Linux常用命令
    TCP TIME_WAIT和CLOSE_WAIT
    OSI参考模型与TCP/IP参考模型与TCP/IP协议栈
    限流算法
    正向代理和反向代理
    oracle全量、增量备份
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/3837131.html
Copyright © 2020-2023  润新知