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 はプロキシ資格情報をホストとポートでスコープします。

関連記事