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 ограничава идентификационните данни на проксито по хост и порт.

Подобни статии