Java Netzwerkverbindung über Proxy

Thomas Darimont

Erfahrenes Mitglied
Hallo!

Wenn ihr mit java eine Netzwerkverbidnung über einen Proxy aufbauen wollt könnt ihr das folgendermaßen machen:

Entweder gebt ihr die Proxy Properties der Java Laufzeitumgebung über die Konsole als Parameter mit
Code:
java -DproxySet=true -DproxyHost=proxy -DproxyPort=8080 MyApp

oder

ihr setzt in eurem Programm die Einstellungen mittels:
Code:
System.setProperty("proxyPort","8080");
System.setProperty("proxyHost","proxy");
...

HTH
Gruß Tom
 
Halli und hallo,
mal ne Frage... gilt das auch für eigene Socket-Anwendungen oder ist dieser Hinweis mehr für High-Level Netzwerk-Programme gedacht (z.B. Soap etc.) ?
Wenn ja, wie funktioniert das eigetnlich dann intern?

mit fragenden Grüßen

Takidoso
 
Hallo!

Ich denke das gilt für alle Socket Vebindungen und alle darauf fußenden Varianten.
Zu den Interna kann ich nicht viel sagen, da müßte man mal in der JVM Spezifikation nachschauen was dort über Sockets gesagt wird.

gruß Tom
 
Hallo,
System.setProperty funktioniert bei mir leider genausowenig als die Angabe des Proxys beim Programmaufruf.

Es sei denn ich mache etwas verkehrt:

Code:
start javaw -DproxySet=true -DproxyHost=147.154.145.40 -DproxyPort=8080 -classpath TicketFinder.jar;jl1.0.jar;mp3.jar;mysql.jar ticketfinder.TicketFinder12
Die IP-Adresse ist in diesem Falle fiktiv.
con.isUsingProxy() gibt false zurück und darauf folgt dann eine Exception, die wie folgt aussieht:
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
usw...
 
Hallo!

Kann es sein, dass dein proxy eine Authentifizierung erfordert?
Dann versuchs mal noch damit:
Code:
System.setProperty( "http.proxyUser", "benutzer" );
System.setProperty( "http.proxyPassword", "passwort" );

Gruß Tom
 
Hallo!

Also ich kann bestätigen, dass diese Optionen bei normalen Anwendungen funktionieren.
Was machst du denn konkret in diesem Fall und an welcher Klasse ist denn diese isUsingProxy() Methode Implementiert? Hab gerade mal über das JDK gegreped (Java 5 als auch java 6) und dabei nichts dergleichen gefunden... verwendest du da irgend eine Third Party Lib?

Gruß Tom
 
Hallo,
Sorry, ich meinte die Methode .usingProxy() von der Klasse HttpURLConnection (java.net.HttpURLConnection).
Ich verwende bei meiner Anwendung einen TimerTask (java.util.TimerTask). Vielleicht liegt es ja daran?
Unter dem folgenden Link habe ich mal alle wichtigen Stellen der Anwendung hineinkopiert:
nopaste
Ich wäre dir sehr dankbar, wenn du eine Idee hast.
 
Zuletzt bearbeitet:
Hallo!

Dann sag doch gleich, dass du usingProxy() statt isUsingProxy() verwendest ;-)
Wie gesagt ich hab keine Probleme mit oben genannten Optionen über eine HttpURLConnection Daten über einen Proxy zu beziehen... welche Java Version verwendest du denn?

Btw. mit dem Parameter http.nonProxyHosts kann man ürbigens Hosts angeben die nicht über den Proxy sondern direkt angesprochen werden sollen. Mehrere Hosts trennt man dabei mit einem Pipe '|' Zeichen.

Gruß Tom
 
Hellas!

Hab jetzt eine Frage bzw. ein Problem mit einer Proxy-Verbindung. Also folgendens, ich habe eine JavaWebStart-Anwendung welche sich über eine HttpUrlConnection zu einem Server verbindet. In diese Anwendung habe ich Heute bzw. wollte ich auch einen Dialog für Proxy-Einstellungen einfügen.

Klappt alles soweit, nur das ich keine Rechte habe System Properties zu setzten. Die Anwendung läuft als FileOpenService... Ich hab nun wohl keine Möglichkeit die Systemproperties zu setzten, außer ich füge noch einen Service hinzu, oder? Und welchen Service würde ich hierzu benötigen? Reicht BasicService evtl. schon aus?

lg Billie
 

Neue Beiträge

Zurück