it-swarm.com.de

Proxy-Einstellungen in einem Java-Programm

Ich versuche, mit einem aus wsdl generierten Client über ein Java-Programm in Eclipse eine Verbindung zu einem Webdienst herzustellen. Ich leite meine Anfrage über einen Proxyserver weiter. Aber es scheint, dass die Anfrage nicht durchkommt. Dieselben Proxy-Einstellungen funktionieren auf SoapUI einwandfrei. Hier finden Sie die von mir eingestellten Systemeigenschaften. 

Properties props= new Properties(System.getProperties()); 

props.put("http.proxySet", "true"); 

props.put("http.proxyHost", "10.x.x.x"); 

props.put("http.proxyPort", "80");

props.put("http.proxyUser","domainName\\xxx");

props.put("http.proxyPassword","xxx");

Properties newprops = new Properties(props);

Java-Programm löst eine Ausnahme als Java.net.UnknownHostException: aus

Was fehlt mir?

9
Kunal
Java -Dhttp.proxyHost=proxyhostURL
     -Dhttp.proxyPort=proxyPortNumber
     -Dhttp.proxyUser=someUserName
     -Dhttp.proxyPassword=somePassword javaClassToRun

http://i4t.org/2007/05/04/Java-http-proxy-settings/

9
Abiram

wenn Sie den Webservice über HTTPS verbinden, müssen Sie die Proxy-Eigenschaft festlegen

https.proxyHost
https.proxyPort

( http://docs.Oracle.com/javase/6/docs/technotes/guides/net/proxies.html )

5
Jt0

Ich verwende den folgenden Code (und es funktioniert):

    String Host = "10.x.x.x";
    String port = "80";
    System.out.println("Using proxy: " + Host + ":" + port);
    System.setProperty("http.proxyHost", Host);
    System.setProperty("http.proxyPort", port);
    System.setProperty("http.nonProxyHosts", "localhost|127.0.0.1");
4
Donato Szilagyi

Neben dem Festlegen der Systemeigenschaften können Sie mit Java.net.Authenticator auch die Proxy-Konfiguration festlegen.

final String authUser = "user";
final String authPassword = "password";
Authenticator.setDefault(
   new Authenticator() {
      public PasswordAuthentication getPasswordAuthentication() {
         return new PasswordAuthentication(
               authUser, authPassword.toCharArray());
      }
   }
);

System.setProperty("http.proxyUser", authUser);
System.setProperty("http.proxyPassword", authPassword);
2
Snehasish

Ich hatte das gleiche Problem. Nur der folgende Code funktioniert für mich, um Proxy einzustellen. 

System.setProperty("Java.net.useSystemProxies", "true");
1
Marykhanzadi

Ich konnte den Proxy mit dem folgenden Code durchgehen.

Snehasish Code wurde um einige neue Zeilen erweitert

final String authUser = "username";
final String authPassword = "password";
Authenticator.setDefault(
   new Authenticator() {
      public PasswordAuthentication getPasswordAuthentication() {
         return new PasswordAuthentication(
               authUser, authPassword.toCharArray());
      }
   }
);
url = new URL("http://www.somewebsite.com/sendmyrequest");

connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setFollowRedirects(true);

System.getProperties().put("http.proxyHost", "proxy.xyz.com");
System.getProperties().put("http.proxyPort", "portNumber");
System.setProperty("http.proxyUser", authUser);
System.setProperty("http.proxyPassword", authPassword);
System.getProperties().put("http.proxySet", "true");
1
jai kiran

Sie können den Proxy mit System.setProperty() einstellen.

System.setProperty("http.proxyHost","122.183.139.107");
System.setProperty("http.proxyPort","8080");

und wenn Sie entfernen möchten 

System.setProperty("http.proxyHost","");
System.setProperty("http.proxyPort","");
1
Bhola

Es gibt keine solche Eigenschaft wie http.proxySet.

Sie müssen die anderen Eigenschaften festlegen, bevor Sie HTTP-URLs verwenden. Die nachträgliche Änderung hat keine Auswirkungen.

Wenn Sie Proxys dynamisch ändern müssen, lesen Sie Java.net.Proxy.

'Klartextverbindung?' bedeutet genau das, was es sagt: Sie verwenden SSL für ein Nicht-SSL-Ziel, wahrscheinlich ein Klartext.

0
user207421