HttpsURLConnection

AmunRa

Gesperrter Benutzer
hallo ich hab ein Problem mit meinem Program,
wenn ich dies zu Hause bei mir ausführe funktioniert das ganze ohne Probleme wennich nun aber in der Firma ausführe bekomme ich eine java.net.ConnectException : connect

Ich vermute mal, dass dies damit zusammen hängt dass wir hier hinter einem Proxy hängen.
Meine
Frage ist nun ob mir jemand ein gutes Tutrial oder andere Beispiele/online Resourcen empfehlen kann.
das sich direkt nur mit HttpsUrlConnections befasst? um eben z.B dieses Problem zu lösen

Java:
public static void main(String... args){
		try {
			
			URL url= new URL("https://issues.apache.org/jira");
			
			

			HttpsURLConnection con= (HttpsURLConnection) url.openConnection();
			
					con.setDoInput(true);
			
			
			System.out.println(con.getResponseMessage());  //<- in dieser Zeile tritt der Fehler auf
			BufferedReader rd= new BufferedReader(new InputStreamReader(con.getInputStream()));
			
			String line;
			while((line=rd.readLine())!=null){
				System.out.println(line);
			}
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("IOEXCEPTION");
			e.printStackTrace();
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
 

AmunRa

Gesperrter Benutzer
Nein das Problem ist nicht direkt der Proxy, da ich eine HttpUrlConnection ohne weiteres öffnen kann.

es muss irgendetwas mit https zu tun haben aber ich komm nicht drauf. Vl hat wer eine IDEE
 

AmunRa

Gesperrter Benutzer
Okey es war doch direkt der Proxy, oder so ähnlich.

wenn ich eine HTTPS verbindung aufbauen möchte.
Java:
URL url= new URL("https://issues.apache.org/jira");
HttpsURLConnection con = url.openConnection

mussich zuerst dies ausführen.
Java:
 System.getProperties().put("proxySet", "true");
      System.getProperties().put("proxyHost", "proxy.xxx.xx);
      System.getProperties().put("proxyPort", "81");

dies verwundert mich, weil ich ja eigentlich schon die VM mit den Parametern

Code:
-Dhttp.proxyHost=proxy.xxx.xx -Dhttp.proxyPort=81

starte.

Kann mir das jemand erklären.
Also meine Frage ist:
Warum muss ich, wenn ich eine Http verbindung aufbaue den Proxy NICHT in die System properties eintragen, wenn ich aber eine HttpS Verbindung öffne schon?
 
G

Gast2

Gast
Warum muss ich, wenn ich eine Http verbindung aufbaue den Proxy NICHT in die System properties eintragen, wenn ich aber eine HttpS Verbindung öffne schon?

Sicher? Gleicher Code, nur statt [c]URL url= new URL("https://issues.apache.org/jira");[/c] [c]URL url= new URL("http://heise.de");[/c], funkioniert hinter dem proxy?

Was ist das denn für ein Proxy, bzw wie ist der eingestellt? Evlt ist es so eingestellt das Port 80 ohne proxy rauskann, 443 nur mit? Kommt ganz auf die Proxyeinstellungen und die Netzwerkinfrastruktur an.

Wir haben z.b. auch einen Zwangsproxy im IE, eingestellt per Grouppolicies - aber im Firefox und allen anderen Programmen greift der nicht.
 

AmunRa

Gesperrter Benutzer
Gleicher Code, nur statt URL url= new URL("https://issues.apache.org/jira"); URL url= new URL("http://heise.de"); , funkioniert hinter dem proxy

wenn ich die VM-Parameter

-Dhttp.proxyHost=proxy.xxx.xx -Dhttp.proxyPort=81 mit gebe

wenn ich diese nicht angebe bekomme ich auch eine ConnectionException


P.S
Was ich auch getestet habe ist:
ich gebe die VM-Parameter nicht an
setze aber die System.properties wie ich es in meinen Verherigen Post beschreiben habe,

dann kann ich sowohl via http als auch via https hinaus.
 
X

xhi2018

Gast
Gleicher Code, nur statt URL url= new URL("https://issues.apache.org/jira"); URL url= new URL("http://heise.de"); , funkioniert hinter dem proxy

wenn ich die VM-Parameter

-Dhttp.proxyHost=proxy.xxx.xx -Dhttp.proxyPort=81 mit gebe

hmm - deswegen vielleicht:
...
The https (http over SSL) protocol handler has its own set of properties:
* htttps.proxyHost
* https.proxyPort
...
aus Oracle Java SE Documentation - Java Networking and Proxies
wenn ich diese nicht angebe bekomme ich auch eine ConnectionException

Also komplett ohne Parameter - weder über VM-Parameter
Code:
 -Dhttp...
beim Aufruf noch über
Code:
 System.getProperties().put("...","...");
? Dann ist der Fehler / das Verhalten ja - soweit ich Deine Beschreibung verstehe - korrekt, oder hättest Du was anderes erwartet?

P.S
Was ich auch getestet habe ist:
ich gebe die VM-Parameter nicht an setze aber die System.properties wie ich es in meinen Verherigen Post beschreiben habe, dann kann ich sowohl via http als auch via https hinaus.

was ich mir jetzt wiederum nicht erklären könnte - vielleicht gibt's ja eine Erklärung in der obigen Doku, die ich mir jetzt nicht genau durchgelesen hab. :rtfm:

viel Erfolg! ;)
 

Neue Themen


Oben