Java Netzwerkverbindung über Proxy

Code:
System.setProperty( "proxySet", "true" );
            System.setProperty( "proxyHost", "24.151.169.51" );
            System.setProperty( "proxyPort", "13139" );
            try {
                URL url=new URL("http://www.wieistmeineip.de/");
                
                try {
                    InputStream is=url.openStream();
                    OutputStream os=new FileOutputStream("c:/output12.html");
                    int i;
                    while(( i=is.read())>-1){
                        os.write(i);
                    }
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
                
            } catch (MalformedURLException ex) {
                ex.printStackTrace();
            }

also der proxy funktioniert nicht aber statt einer io exception connected das ding einfach normal und ich bekomme meine echte ip zurück.
Was mache ich da falsch?
 
Zuletzt bearbeitet:
ich habe vor einiger Zeit mal eine Klasse geschrieben, mit der ich durch Proxys komme sowie mich bei denen Autentifizieren kann, funktioniert prima, vllt hilft es euch ja ;)

Java:
package lib;

import java.net.Authenticator;
import java.net.PasswordAuthentication;

public class ProxyConnection{

	public ProxyConnection(String host, int port){
		this.proxyDaten(host,port);
	}
	
	public ProxyConnection(String host, int port, String username, String passwort){
		this.proxyDaten(host,port);
		Authenticator.setDefault(new ProxyAuth(username,passwort));
	}
	
	private void proxyDaten(String host, int port){
        System.setProperty("http.proxySet","true");
        System.setProperty("http.proxyHost",host);
        System.setProperty("http.proxyPort",String.valueOf(port));		
	}
	
	private class ProxyAuth extends Authenticator {
		private String username;
		private String passwort;
		public ProxyAuth(String username, String passwort) {
			this.username = username;
			this.passwort = passwort;
		}
		protected PasswordAuthentication getPasswordAuthentication() {
			return(new PasswordAuthentication(this.username, this.passwort.toCharArray()));
		}
	}

}

Das setzen von http.proxyUser hatte leider nicht geholfen, da eine Windows-Autentifizierung von Nöten war, aber die nette interne Java-Klasse PasswordAuthentication kann das lösen
 
Zuletzt bearbeitet:
Hallo,

ich hatte für eine Proxyfunktion diesen Code genommen welcher hier beschrieben wurde:
Code:
System.setProperty("proxyPort","8080");
System.setProperty("proxyHost","proxy");
System.setProperty( "http.proxyUser", "benutzer" );
System.setProperty( "http.proxyPassword", "passwort" );

Wenn ich einen Proxy benützte bei dem ich keine Authentifizierung benötige und diese daher auch nicht setzen muss klappt es ohne Probleme. Aber wenn ich dann einen Proxy mit Authentifizierung benützten möchte funktioniert es leider nicht.
Daher wollte ich fragen ob man vielleicht beim setzen von einem Proxy mit Userdaten sonst noch irgend etwas anderes beachten muss.
 
Danke tobias_petry,

mit deinem Ansatz über PasswordAuthentication funktioniert alles.

Es wäre aber trotzdem interessant zu wissen wie man über "http.proxyUser " die Authentifizierung konfiguriert (brauche das für Tomcat oder allgemein für JVM).
 
Sorry, ein so altes Thema wieder aufzugreifen, aber ich habe eine set Propety Einstellung gefunden, mit der ich die Systemeinstellungen übernehmen kann:

Code:
System.setProperty("java.net.useSystemProxies", "true");

Allerdings habe ich dann das Problem, das meine Sockets nicht mehr gehen.
Und mit einem einfachen

Code:
System.setProperty("java.net.useSystemProxies", "false");

nach dem true, geht es auch nicht mehr.
Sehr suspekt
 

Neue Beiträge

Zurück