Настройка прокси в WebClient из HtmlUnit
Настройте собственный ProxyConfig HtmlUnit до загрузки страниц, включая схему конечной точки и правила обхода по регулярным выражениям.
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 ограничивает учётные данные прокси по хосту и порту.