[解決済み] PoolingHttpClientConnectionManagerです。Https リクエストをどのように行うか?
2022-02-17 16:04:51
質問
現在、複数の
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ツールは作っていませんのでご安心ください。)
ありがとうございました。
追伸:HttpComponents 4.3.1を使っています。
どのように解決するのですか?
答えが見つかりました。 https://stackoverflow.com/a/19950935/1223253
ちょうど追加する必要がありました。
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory> create().register("https", sslsf).build();
とパス
socketFactoryRegistry
のコンストラクタのパラメータとして使用します。
PoolingHttpClientConnectionManager
.
今は問題なく動作しています :)
関連
-
[解決済み】エラー:'if'のない'else'エラー
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] HTTPSのURLは暗号化されていますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] if / for / while 内で "Missing return statement" が発生する。
-
[解決済み】javaで指定されたファイルが見つからない
-
[解決済み】Javaの".class期待値"
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】Eclipseがエラーメッセージ "Java was started but returned exit code = 1" を返す
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】Eclipseで「JUnitテストが見つかりませんでした。
-
[解決済み] テスト
-
[解決済み】Javaの未処理例外について