HttpGet
現在、同時に複数のリクエストを実行しようとしていますCloseableHttpClient
。
その方法をグーグルで調べたところ、答えはPoolingHttpClientConnectionManager
.
この時点で私はこれを得ました:
PoolingHttpClientConnectionManager cManager = new PoolingHttpClientConnectionManager();
CloseableHttpClient httpClient = HttpClients.custom()
.setConnectionManager(cManager)
.build();
HttpGet
それから私はリクエストを試みましたがhttp://www.google.com
、すべてうまくいきました。
次に、cmd を使用してトラストストアを作成し、対象の Web サイトの証明書をインポートSSLConnectionSocketFactory
し、トラストストアをセットアップしてSSLSocketFactory
、httpClient
次のように設定しました。
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
、PKIX path building failed
例外が発生します。
私が同じことをせずに行うと、.setConnectionManager(cManager)
すべてうまくいきます。
どうすればこれを機能させることができるか教えてもらえますか?(心配しないでください。私は ddos ツールを作成していません)
前もって感謝します!
PS: HttpComponents 4.3.1 を使用しています