Daten per HTTP POST Request senden

Daten per HTTP POST Request senden

Android macht es uns einfach relativ einfach, Daten per HTTP POST-Request an eine beliebige Internetadresse zu senden. Dieser Artikel wird euch in Kürze zeigen, wie dies geht.

Bevor wir jedoch beginnen können bedarf es einer Berechtigung von Android, um mit dem Internet kommunizieren zu können. Hierfür müssen wir die AndroidManifest.xml öffnen und innerhalb des Tags "application" folgendes einfügen:

<uses-permission android:name="android.permission.INTERNET" />

Nun, da wir ins Internet dürfen, können wir anfangen den Java-Code zu programmieren.
Als erstes müssen wir einen HttpClient erstellen und ihm eine Url übergeben. Dieser Client wird dann im Anschluss entsprechende Daten an die angegebene Url übertragen und uns ebenso die Antwort des Servers anzeigen.

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("https://droid-lernen.de/scriptToPostTo.php");

Nun, da wir einen Client erstellt haben, welcher Daten senden könnte, müssen wir ihm noch die zu sendenden Daten übergeben. Diese bestehen jeweils aus einem Paar von "Schlüsselwort" und "Wert".

try{
   List<NameValuePair> dataToSend = new ArrayList<NameValuePair>();
   dataToSend.add(new BasicNameValuePair("schluesselwort1", "wert1"));
   dataToSend.add(new BasicNameValuePair("schluesselwort2", "wert2"));
} catch (UnsupportedEncodingException e) {
   // Es ist etwas schief gelaufen.
}

Schlussendlich können wir den Post-Request nun absenden und sowohl die Antwort des Servers, als auch den Statuscode (Erfolg, Misserfolg, etc.) auslesen.


try {
  HttpResponse response = client.execute(post);
   InputStreamReader inputstream = new InputStreamReader(response.getEntity().getContent(), "UTF-8");
   BufferedReader reader = new BufferedReader(inputstream);

   StringBuilder builder = new StringBuilder();
   for (String line = null; (line = reader.readLine()) != null;)
      builder.append(line).append("n");

   int statusCode = response.getStatusLine().getStatusCode();
   String antwort = builder.toString();
} catch (ClientProtocolException | IOException e) {
   // Es ist etwas schief gelaufen und die Url konnte nicht erreicht werden.
}


Marvin

Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Kommentar hinzufügen

*Pflichtfeld

Ist es nicht empfohlen neuerdings Kotlin Code zu nutzen?

Hallo Simon, Kotlin hat ein paar Vorzüge, die gewiss nicht zu verkennen sind. Nichts desto trotz ist es eigentlich immer jedem Entwickler selber überlassen, welche Programmiersprache er bevorzugt und am Ende auch einsetzt und beherrscht. Android Apps können in Java, Kotlin und zu Teilen auch aus C bestehen. Programmieren könnte man theoretisch aber auch über Cordova (HTML, CSS & JS), Flutter (Dart) oder anderen Frameworks. Was am Ende dabei raus purzelt ist dann wieder eine ganz andere Geschichte. Gruß, Marvin