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

Configure ProxyConfig en el WebClient que carga la página antes de la navegación. Esto usa el espacio de nombres org.htmlunit; las dependencias anteriores usaban com.gargoylesoftware.htmlunit y pueden exponer constructores diferentes.

Sustituya el host del proxy y el puerto entero por un candidato sin autenticación de la lista de proxies HTTP para este ejemplo de página pública. El "http" del constructor describe el intermediario, incluso para una página HTTPS. No ponga un prefijo de URL en el argumento del nombre de host ni cambie el protocolo solo para coincidir con el destino.

Los valores de omisión son expresiones regulares, no reglas PAC ni una lista de entorno separada por comas. Si una solicitud va directamente de forma inesperada, compare el host solicitado con esos patrones y confirme que usa este WebClient.

Un WebClient o cliente HTTP creado por separado no hereda este objeto de configuración. Configure las instancias reutilizables antes de su trabajo en lugar de cambiar el estado global en torno a solicitudes concurrentes. La verificación del destino y el inicio de sesión en el sitio web siguen siendo independientes; un proxy autenticado también necesita la interfaz de credenciales de la versión de HtmlUnit instalada. Por ejemplo, HtmlUnit 4.21.0 limita las credenciales del proxy por host y puerto.

Artículos relacionados