Si je fais ça ...
conn = new URL(urlString).openConnection();
System.out.println("Proxy? " + conn.usingProxy());
ça imprime
Proxy? false
Le problème est que je suis derrière un proxy. D'où la JVM obtient-elle ses informations de proxy sous Windows? Comment puis-je configurer cela? Toutes mes autres applications semblent parfaitement satisfaites de mon proxy.
Depuis Java 1.5, vous pouvez également passer une instance Java.net.Proxy à 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 votre proxy requiert une authentification, il vous donnera la réponse 407.
Dans ce cas, vous aurez besoin du code suivant:
Authenticator authenticator = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication("user",
"password".toCharArray()));
}
};
Authenticator.setDefault(authenticator);
C'est assez facile de répondre depuis Internet. Définissez les propriétés système http.proxyHost
et http.proxyPort
. Vous pouvez le faire avec System.setProperty()
ou depuis la ligne de commande avec la syntaxe -D
.
Les proxies sont pris en charge via deux propriétés système: http.proxyHost et http.proxyPort. Ils doivent être définis sur le serveur proxy et le port, respectivement. L'exemple de base suivant l'illustre:
String url = "http://www.google.com/",
proxy = "proxy.mydomain.com",
port = "8080";
URL server = new URL(url);
Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost",proxy);
systemProperties.setProperty("http.proxyPort",port);
HttpURLConnection connection = (HttpURLConnection)server.openConnection();
connection.connect();
InputStream in = connection.getInputStream();
readResponse(in);
Définissez ce qui suit avant d’ouvrir openConnection,
System.setProperty("http.proxyHost", "Host");
System.setProperty("http.proxyPort", "port_number");
Si le proxy requiert une authentification,
System.setProperty("http.proxyUser", "user");
System.setProperty("http.proxyPassword", "password");
Vous pouvez également définir
-Djava.net.useSystemProxies=true
Sous Windows et Linux, cela utilisera les paramètres du système, vous évitant ainsi de vous répéter (DRY)
http://docs.Oracle.com/javase/7/docs/api/Java/net/doc-files/net-properties.html#Proxies
Pour Java 1.8 et versions ultérieures, vous devez définir -Djdk.http.auth.tunneling.disabledSchemes=
afin de créer des proxies avec une autorisation de base fonctionnant avec https.
La réponse approuvée fonctionnera ... si vous connaissez votre hôte proxy et votre port =). Mais si vous recherchez l'hôte proxy et portez la procédure ci-dessous devrait vous aider.
si proxy configuré automatiquement est donné: alors
1> ouvrir IE (ou n'importe quel navigateur)
2> obtenez l'adresse URL de votre navigateur via IE-> Outils-> option Internet-> connexions-> Paramètres LAN-> obtenez l'adresse et donnez l'URL, par exemple: as http://autocache.abc.com/ et entrez, un fichier sera téléchargé au format .pac, sauvegardé sur le bureau
3> ouvrez le fichier .pac dans textpad, identifiez PROXY:
Dans votre éditeur, ce sera quelque chose comme:
retourner "PROXY web-proxy.ind.abc.com:8080; PROXY proxy.sgp.abc.com:8080";
bravo à bekur de maven dans 5 min ne fonctionne pas
Une fois que vous avez l'hôte et le port, entrez dans ceci et votre bon à aller
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("web-proxy.ind.abc.com", 8080));
URLConnection connection = new URL(url).openConnection(proxy);