Java SSL Socket, Beispiel mit guter Beschreibung?

SourceCoder

Lt. Commander
Registriert
Apr. 2012
Beiträge
1.585
Schönen guten Tag zusammen,

ich wollte gern wissen ob Ihr ein gutes Beispiel kennt wo beschrieben wird wie man eine TCP/IP SSL Socket Verbindung zu einem Server aufbaut, Daten sendet(POST) und empfängt.

Hab ein paar Stunden per Google gesucht, doch die meisten sind schlecht erklärt.
 
Was exakt hast du vor? Es ist vermutlich einfacher sowas wie cURL zu nutzen wenn es nur um simple POSTs etc. geht
 
cUrl kann ich nicht nutzen, bin auf die Standard Bibo von Java angewiesen.

Will eine HTTPS Seite aufrufen mit User/PW und dort per POST ein String übergeben und dann bekomme ich etwas zurück.
 
Wenn du schon Stundenlang Google bemüht hast und dir alle möglichen Anleitungen nicht passen ... wie wäre es mitzuteilen was dich an den Anleitungen stört? Oder wo du beim befolgen von den Anleitungen hängst?
 
Wenn es keinen guten Grund gibt das low level selbst hinzubasteln (Schulaufgabe?), solltest du eine existierende Lösung verwenden. Sowohl jsoup als auch der Apache httpclient wären für deinen Anwendungsfall die Kandidaten. Mit jsoup hab ich mir neulich ein Tool gebastelt, was sich im CB-Forum einloggt und ein paar Infos zusammensammelt. Denk nämlich auch an Dinge wie redirects, bestimmte header auf die du reagieren musst und Cookies, die du eventuell mitschleppen musst.
 
So sieht aktuell mein Code aus:

Code:
		String url = "https://www.XXXX";
		URL obj = new URL(url);
		HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
 
		//add reuqest header
		con.setRequestMethod("POST");
		con.setRequestProperty("User-Agent", USER_AGENT);
		con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
		con.setRequestProperty("Content-Type", "multipart/mixed");
 
		String urlParameters = "sn=C02G8416DRJM&cn=&locale=&caller=&num=12345";
 
		// Send post request
		con.setDoOutput(true);
		DataOutputStream wr = new DataOutputStream(con.getOutputStream());
		wr.writeBytes(urlParameters );
		wr.flush();
		wr.close();
 
		int responseCode = con.getResponseCode();
		System.out.println("\nSending 'POST' request to URL : " + url);
		System.out.println("Post parameters : " + urlParameters );
		System.out.println("Response Code : " + responseCode);
 
		BufferedReader in = new BufferedReader(
		        new InputStreamReader(con.getInputStream()));
		String inputLine;
		StringBuffer response = new StringBuffer();
 
		while ((inputLine = in.readLine()) != null) {
			response.append(inputLine);
		}
		in.close();
 
		//print result
		System.out.println(response.toString());

Was mit noch fehlt ist Username und Passwort, und ich müsste eine boundary mitgeben können.

Der POST ist ein vom Typ multipart, der der POST enthält noch zwei Parts, in den stehen dann die boundary.
 
Zuletzt bearbeitet:
Username und Passwort musst du in die URL packen:

Code:
String url = "https://username:password@www.example.de"

Jojo
 

Ähnliche Themen

F
Antworten
3
Aufrufe
1.789
Furtano
F
Zurück
Oben