httpclient4.5 访问 使用自签名证书的https网站 报错问题的解决

使用下面的getHttpClient()方法代替HttpClients.createDefault()即可。(可以不是static)

private static CloseableHttpClient getHttpClient() {
    try {
        SSLContext sslContext = SSLContexts.custom()
                .loadTrustMaterial(TrustSelfSignedStrategy.INSTANCE)
                .build();

        ConnectionSocketFactory plainsf = new PlainConnectionSocketFactory();
        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);

        Registry r = RegistryBuilder.create()
                .register("http", plainsf)
                .register("https", sslsf)
                .build();

        HttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(r);

        return HttpClients.custom()
                .setConnectionManager(cm)
                .build();

    } catch

你可能感兴趣的:(httpclient,https,自签名证书)