CloseableHttpClient获取https请求不验证证书

柔情只为你懂 2022-03-21 04:17 811阅读 0赞

创建—-调用

  1. CloseableHttpClient httpclient = getHttpsClient();
  2. /**
  3. * 获取https连接(不验证证书)
  4. *
  5. * @return
  6. */
  7. private static CloseableHttpClient getHttpsClient() {
  8. RegistryBuilder<ConnectionSocketFactory> registryBuilder = RegistryBuilder.<ConnectionSocketFactory>create();
  9. ConnectionSocketFactory plainSF = new PlainConnectionSocketFactory();
  10. registryBuilder.register("http", plainSF);
  11. // 指定信任密钥存储对象和连接套接字工厂
  12. try {
  13. KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
  14. // 信任任何链接
  15. TrustStrategy anyTrustStrategy = new TrustStrategy() {
  16. @Override
  17. public boolean isTrusted(java.security.cert.X509Certificate[] arg0, String arg1) throws java.security.cert.CertificateException {
  18. // TODO Auto-generated method stub
  19. return true;
  20. }
  21. };
  22. SSLContext sslContext = SSLContexts.custom().useTLS().loadTrustMaterial(trustStore, anyTrustStrategy).build();
  23. LayeredConnectionSocketFactory sslSF = new SSLConnectionSocketFactory(sslContext, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
  24. registryBuilder.register("https", sslSF);
  25. } catch (KeyStoreException e) {
  26. throw new RuntimeException(e);
  27. } catch (KeyManagementException e) {
  28. throw new RuntimeException(e);
  29. } catch (NoSuchAlgorithmException e) {
  30. throw new RuntimeException(e);
  31. }
  32. Registry<ConnectionSocketFactory> registry = registryBuilder.build();
  33. // 设置连接管理器
  34. PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(registry);
  35. // 构建客户端
  36. return HttpClientBuilder.create().setConnectionManager(connManager).build();
  37. }

发表评论

表情:
评论列表 (有 0 条评论,811人围观)

还没有评论,来说两句吧...

相关阅读