HtmlUnit の WebClient でプロキシを設定する
ページを読み込む前に HtmlUnit 自身の ProxyConfig を構成します。エンドポイントのスキームと正規表現によるバイパス規則も含みます。
import org.htmlunit.ProxyConfig;
import org.htmlunit.WebClient;
try (WebClient browser = new WebClient()) {
ProxyConfig proxy =
new ProxyConfig("proxy.example.net", 8080, "http");
proxy.addHostsToProxyBypass("localhost");
browser.getOptions().setProxyConfig(proxy);
browser.getPage("https://example.net/");
}
ナビゲーションの前にページを読み込む WebClient に ProxyConfig を設定します。これは org.htmlunit 名前空間を使用します。古い依存関係は com.gargoylesoftware.htmlunit を使用しており、異なるコンストラクターを公開している場合があります。
この公開ページの例では、プロキシのホストと整数ポートを HTTP プロキシ一覧 の未認証の候補に置き換えます。コンストラクターの "http" は、HTTPS ページの場合でも中間者を表します。ホスト名の引数に URL プレフィックスを入れず、宛先に合わせるためだけにプロトコルを変更しないでください。
バイパスの値は正規表現であり、PAC ルールでもカンマ区切りの環境変数リストでもありません。リクエストが予期せず直接送信される場合は、要求されたホストをそれらのパターンと比較し、この WebClient を使用していることを確認してください。
別に作成された WebClient や HTTP クライアントは、この構成オブジェクトを継承しません。同時リクエストの周りでグローバル状態を変更するのではなく、再利用可能なインスタンスを処理前に構成してください。宛先の検証とウェブサイトへのログインは別のままです。認証付きプロキシには、インストールされている HtmlUnit バージョンの資格情報インターフェースも必要です。たとえば、HtmlUnit 4.21.0 はプロキシ資格情報をホストとポートでスコープします。