rss-icon mail-icon

Portfolio Christian Waldmann

Vom:

Blog

Mein "Kompendium" und sonstige Projekte

Java: Senden und Empfangen von Daten (URLConnection)

Daten an einen Server Senden

Um Daten auf einen Server schicken zu können, muss zuerst eine Verbindung zum Server hergestellt werden. Danach muss diese Verbindung noch „schreibbar“ gemacht werden.

//Connection aufbauen
URL url = new URL(„http://mein-server.de“);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);

Nachdem die Verbindung schreibbar ist, können mit Hilfe eines OuputSteamWriter die Daten an den Server gesendet werden. POST–Daten werden mit Hilfe von Key und Value versendet. Über den „Key“ können sie identifiziert werden, sodass auf Daten zugegriffen werden kann. Der zu versendende String sollte vorher, um eine sicherere Weiterverarbeitung auf dem Server zu gewährleisten, auf „UTF-8“ konvertiert werden.

//Die Daten
String data;
data = URLEncoder.encode("langertext", "UTF-8") + "=" + URLEncoder.encode(„Dies ist ein langer Text und wird zum
Server zur weiteren Verarbeitung geschickt - z.B. könnte das hier der ein xml string stehen“, "UTF-8");

//senden
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream())
wr.write(data);
wr.flush();

Daten von einem Server empfangen (Read only)

Um von einem Server Daten zu empfangen, muss zuerst eine Verbindung mit dem Server hergestellt werden.

URL url = new URL(„http://google.de“);			
URLConnection conn = url.openConnection();

Danach können die vom Server gesendeten Daten mit einem BufferedReader zwischengepuffert werden, bis alle Daten empfangen sind.
Diese können dann, z.B. mit einer while-Schleife, in der Konsole wieder ausgegeben werden:

//Daten empfangen - z.B. Anfrage auf eine API
URL url = new URL(„mein-server.de);
URLConnection conn = url.openConnection();

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
InputStreamReader(conn.getInputStream()));

String line;
StringBuffer sb = new StringBuffer ();

while ((line = rd.readLine()) != null) {
sb.append(line + "\n");
}
Kategorie: Java