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.
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);
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!