4 6 Stimmen

Android Programmierung: Daten per HTTP POST Request senden

Tutorial von Progger99 | 20.11.2012 um 21:59 Uhr

Android macht es uns einfach, Daten per HTTP POST an eine beliebige Internetseite im Netz zu senden. In diesem kleinen Tutorial möchte ich euch zeigen, wie es geht.

Zunächst müssen wir uns die nötigen Berechtigungen holen. Dazu schreiben wir die folgende Zeile in das AndroidManifest.xml:

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

Ohne diese Zeile darf unsere App später nicht ins Internet.

Als nächstes benötigen wir zwei Objekte, ein "client" und unser "post". Unserem "post" teilen wir dann auch gleich die Adresse des Skripts mit, an den die Daten später gesendet werden sollen:

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.example.com/script.php");

Bevor wir loslegen können, benötigen wir eine Liste, die unsere Daten enthält, die wir versenden möchten. Wir nehmen dazu eine "NameValuePair"-Liste, so dass wir gleich die Namen und die entsprechenden zugehörigen Werte definieren können. 

List<NameValuePair> postlist = new ArrayList<NameValuePair>();
postlist.add(new BasicNameValuePair("key1", "value1"));
postlist.add(new BasicNameValuePair("key2", "value2"));

Als nächstes benutzen wir setEnitity() und UrlEncodedFormEntity, um unserem "post" die Liste in der richtigen Form zuzuweisen.

try {
   post.setEntity(new UrlEncodedFormEntity(postlist));
} catch (UnsupportedEncodingException e) {
   throw new AssertionError("Encoding Error");
   // oder
   Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
}

Zuletzt müssen wir das POST Request nur noch ausführen. Dazu benutzen wir folgende Zeile:

try {
  HttpResponse response = client.execute(post);
} catch (ClientProtocolException e) {
   throw new AssertionError("Client Protocol Error");
   // oder
   Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
} catch (IOException e) {
   throw new AssertionError("IO Error");
   // oder
   Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
}

Wir bekommen ein HTTP-Response Objekt zurück, das unsere Response des Skripts enthält. Wenn wir möchten, können wir das HTTP-Response Objekt natürlich auch noch bearbeiten und analysieren.

AntwortenPositivNegativ

Über den Autor

Avatar AutorDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen | Nachricht

 

Ähnliche Themen

Wichtiger Hinweis

Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.