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

Définissez ProxyConfig sur le WebClient qui charge la page avant la navigation. Cela utilise l'espace de noms org.htmlunit ; les anciennes dépendances utilisaient com.gargoylesoftware.htmlunit et peuvent exposer des constructeurs différents.

Remplacez l'hôte du proxy et le port entier par un candidat non authentifié de la liste de proxies HTTP pour cet exemple de page publique. Le "http" du constructeur décrit l'intermédiaire, même pour une page HTTPS. Ne mettez pas de préfixe d'URL dans l'argument du nom d'hôte et ne changez pas de protocole juste pour correspondre à la destination.

Les valeurs de contournement sont des expressions régulières, pas des règles PAC ni une liste d'environnement séparée par des virgules. Si une requête passe directement de manière inattendue, comparez l'hôte demandé à ces motifs et confirmez qu'il utilise ce WebClient.

Un WebClient ou un client HTTP créé séparément n'hérite pas de cet objet de configuration. Configurez les instances réutilisables avant leur travail plutôt que de modifier l'état global autour de requêtes concurrentes. La vérification de la destination et la connexion au site restent distinctes ; un proxy authentifié a aussi besoin de l'interface d'identifiants de la version installée d'HtmlUnit. Par exemple, HtmlUnit 4.21.0 limite les identifiants du proxy par hôte et par port.

Articles similaires