私は現在、CloseableHttpClient
で複数のHttpGet
リクエストを同時に実行しようとしています。
私はそれを行う方法を探って、答えはPoolingHttpClientConnectionManager
を使用することでした。その後、私はhttp://www.google.com
にHttpGet
リクエストを試してみましたが、すべてがうまく働いていたPoolingHttpClientConnectionManager:Httpsリクエストを行う方法?
PoolingHttpClientConnectionManager cManager = new PoolingHttpClientConnectionManager();
CloseableHttpClient httpClient = HttpClients.custom()
.setConnectionManager(cManager)
.build();
:
は、この時点で、私はこれを得ました。その後、
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream inputStream = new FileInputStream(new File("myTrustStore.truststore"));
trustStore.load(inputStream, "nopassword".toCharArray());
inputStream.close();
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(trustStore).build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext,
SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
PoolingHttpClientConnectionManager cManager = new PoolingHttpClientConnectionManager();
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(sslsf)
.setConnectionManager(cManager)
.build();
私はHTTPS HttpGet
を実行しようとした場合:
は、それから私は、CMDを経由してトラストストアを作成し、対象Webサイトの証明書をインポートし、セットアップSSLConnectionSocketFactory
を私のトラストストアとし、httpClient
のSSLSocketFactory
を設定しますPKIX path building failed
例外が発生します。
私が.setConnectionManager(cManager)
を使わずに同じことをすると、すべて正常に動作します。
どのように私はこれを動作させることができますか教えていただけますか? (心配しないでください、私はddosツールを作成しません)
ありがとうございます!
P.S:私が見つけ答えをHttpComponents 4.3.1
これを作成した後、コードが動作していますが、接続プールが機能しているかどうかを知りたい場合は – Labeo
接続プールからリースをチェックするようにクライアントログを有効にします。http:///hc.apache.org/httpcomponents-client-ga/logging.html –