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/");
}

Задайте ProxyConfig у WebClient, який завантажує сторінку перед переходом. Тут використовується простір імен org.htmlunit; старіші залежності використовували com.gargoylesoftware.htmlunit і можуть пропонувати інші конструктори.

Замініть хост проксі та цілочисельний порт на неавтентифікованого кандидата зі списку HTTP-проксі для цього прикладу публічної сторінки. "http" конструктора описує посередника, навіть для HTTPS-сторінки. Не додавайте префікс URL в аргумент імені хоста й не змінюйте протокол лише для відповідності призначенню.

Значення обходу — це регулярні вирази, а не правила PAC і не список середовища через кому. Якщо запит несподівано йде напряму, порівняйте запитаний хост із цими шаблонами та підтвердьте, що він використовує цей WebClient.

Окремо створений WebClient або HTTP-клієнт не успадковує цей об'єкт конфігурації. Налаштовуйте повторно використовувані екземпляри до їхньої роботи, а не змінюйте глобальний стан навколо паралельних запитів. Перевірка призначення та вхід на сайт залишаються окремими; автентифікованому проксі також потрібен інтерфейс облікових даних встановленої версії HtmlUnit. Наприклад, HtmlUnit 4.21.0 обмежує облікові дані проксі за хостом і портом.

Схожі статті