クラシックな Apache HttpClient 5 API では、クライアントを構築するときにシステムプロパティを有効にします。

import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;

try (CloseableHttpClient client = HttpClients.custom()
        .useSystemProperties()
        .build()) {
    // Execute the application's HTTP work with this client.
}

意図した起動引数 を、実際のエンドポイントを使って指定します(例: -Dhttp.proxyHost=203.0.113.10 -Dhttp.proxyPort=8080)。HTTP プロキシ一覧 は、その経路が許可されている場合に公開候補を提供します。関係する宛先について HTTPS とバイパスのプロパティを含めます。JVM プロパティを設定しただけでは、このクライアントがそれを使うことは証明できません。

ビルダーのリファレンス は、既定のコンポーネントが考慮するプロパティを示しています。明示的なルートプラナーやその他の提供コンポーネントは、その動作を変える可能性があります。

この設定済みインスタンスを通じてリクエストを行います。別のクライアントを構築する依存関係には、独自のサポートされたファクトリーまたはプロキシ入力が必要です。隣にある未使用のクライアントは何も変えません。

失敗した操作でライブラリとインポートを特定します。Commons HttpClient 3、Apache HttpClient 4、HttpClient 5、そして Java の java.net.http.HttpClient は設定インターフェースが異なります。古いクラスのレシピでは、その世代をまったく使わないクライアントを説明できません。

関連記事