Apache HttpClient 5 Fluent の Executor によるプロキシ認証
Fluent Request の viaProxy ルートと、Apache HttpClient 5 Executor 側の認証情報を組み合わせます。
Apache HttpClient 5 の Fluent API では、Request がプロキシを選び、Executor がそのアカウントを提供します。その認証情報付きオブジェクトを通してリクエストを実行します:
HttpHost proxy = new HttpHost("http", "proxy.example", 8080);
Executor executor = Executor.newInstance()
.auth(proxy, proxyUser, proxyPassword.toCharArray());
String body = executor.execute(
Request.get("https://www.example.com/").viaProxy(proxy))
.returnContent()
.asString();
Executor と Request は org.apache.hc.client5.http.fluent に、HttpHost は org.apache.hc.core5.http に属します。アカウント変数はアプリケーションの設定から取得します。
プロキシの 2 つの使用は意図的に同じホストとポートを指します。viaProxy はルートを選び、auth はその仲介者向けの認証情報を Executor に登録します。最終結果が 407 のままなら、選択されたルートと認証情報のスコープを比較してください。
別の Request の便利な execute メソッドを呼ぶと、別の実行経路になります。例のように認証情報付き Executor を操作に結び付けたままにすると、チャレンジを受け取るクライアントに設定済みのアカウントが渡ります。
この例は 5.x の char-array パスワードインターフェースを使います。古い HttpClient 4 Fluent の断片は別のパッケージとメソッドシグネチャを使います。リクエスト完了後、returnContent はレスポンスエンティティを消費し、接続を再利用のために解放します。