Конфігурація проксі HtmlUnit обирає посередника, а її постачальник облікових даних надає обліковий запис для цього хоста й порту. Для NTLM-проксі в API HtmlUnit 4.21.0 є окремий метод:

String proxyHost = "proxy.example";
int proxyPort = 8080;
DefaultCredentialsProvider credentials = new DefaultCredentialsProvider();
credentials.addNTLMCredentials(
    user, password.toCharArray(), proxyHost, proxyPort, workstation, domain);

try (WebClient browser = new WebClient()) {
    browser.getOptions().setProxyConfig(
        new ProxyConfig(proxyHost, proxyPort, "http"));
    browser.setCredentialsProvider(credentials);
    HtmlPage page = browser.getPage("https://www.example.com/");
}

Класи використовують поточні пакети org.htmlunit, а HtmlPage міститься в org.htmlunit.html. Вкажіть workstation і domain облікового запису проксі відповідно до середовища; цільовий вебсайт не є полем domain для NTLM.

Для звичайного запису облікових даних username/password той самий постачальник пропонує addCredentials з username, паролем як char-масивом, host, port і realm. null realm застосовується до будь-якого realm на цій обмеженій кінцевій точці.

Використовуйте перевантаження, що відповідає схемі автентифікації проксі та фактично розгорнутій залежності. Старі приклади для HtmlUnit 2.x використовують інші назви пакетів і можуть мати підписи з рядковим паролем; наведений код використовує API 4.21.0.

Схожі статті