Maison  >  Article  >  Java  >  Comment s'assurer que HttpURLConnection utilise un proxy et gère l'authentification ?

Comment s'assurer que HttpURLConnection utilise un proxy et gère l'authentification ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-08 15:25:01923parcourir

How to Ensure HttpURLConnection Utilizes a Proxy and Handles Authentication?

Établissement de la connectivité proxy pour HttpURLConnection

Lorsque vous tentez de déterminer si une HttpURLConnection utilise un proxy, le code suivant peut renvoyer faussement false :

conn = new URL(urlString).openConnection();
System.out.println("Proxy? " + conn.usingProxy());

Ce comportement se produit malgré la connexion via un serveur proxy. La machine virtuelle Java (JVM) récupère généralement les informations de proxy à partir des paramètres du système d'exploitation. Cependant, il est possible que la JVM ignore la configuration du proxy dans certaines circonstances.

Proxies et paramètres de proxy JVM

Pour garantir que HttpURLConnection utilise le proxy approprié, il est nécessaire de fournir explicitement les informations de procuration. Ceci peut être réalisé en construisant une instance de proxy et en la transmettant à la méthode openConnection(proxy) :

//Proxy instance, proxy ip = 10.0.0.1 with port 8080
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.0.0.1", 8080));
conn = new URL(urlString).openConnection(proxy);

Authentification des connexions proxy

Si le proxy nécessite une authentification, HttpURLConnection répondra avec un Code de réponse 407. Pour résoudre ce problème, un authentificateur peut être configuré comme suit :

Authenticator authenticator = new Authenticator() {

    public PasswordAuthentication getPasswordAuthentication() {
        return (new PasswordAuthentication("user",
                "password".toCharArray()));
    }
};
Authenticator.setDefault(authenticator);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn