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

Defina ProxyConfig no WebClient que carrega a página antes da navegação. Isso usa o namespace org.htmlunit; dependências mais antigas usavam com.gargoylesoftware.htmlunit e podem expor construtores diferentes.

Substitua o host do proxy e a porta inteira por um candidato não autenticado da lista de proxies HTTP para este exemplo de página pública. O "http" do construtor descreve o intermediário, mesmo para uma página HTTPS. Não coloque um prefixo de URL no argumento do nome do host nem altere o protocolo apenas para corresponder ao destino.

Os valores de contorno são expressões regulares, não regras PAC nem uma lista de ambiente separada por vírgulas. Se uma requisição for diretamente de forma inesperada, compare o host solicitado com esses padrões e confirme que ela usa este WebClient.

Um WebClient ou cliente HTTP criado separadamente não herda este objeto de configuração. Configure instâncias reutilizáveis antes do trabalho delas em vez de alterar o estado global em torno de requisições simultâneas. A verificação do destino e o login no site continuam separados; um proxy autenticado também precisa da interface de credenciais da versão instalada do HtmlUnit. Por exemplo, o HtmlUnit 4.21.0 limita as credenciais do proxy por host e porta.

Artigos relacionados