In Android HTTP POST Requests ausführen

PDF herunterladenPDF herunterladen

HTTP Post gehört seit Android 5.1 zu veralteten HTTP Klassen wie org.apache.http und AndroidHttpClient.[1] Migriere deinen Code in die HttpURLConnection Klassen, welche eine Posting Funktionalität enthalten. HTTP Post wird in Java verwendet, um anzufordern, dass ein bestimmter Webserver Daten, die über ein Request-Formular übermittelt wurden, empfängt und speichert. Die Daten werden übermittelt und in Paaren aus Name und Wert gespeichert. Beispiele solcher Paare sind: email-deine E-Mail-Adresse, benutzername-dein Benutzername und password-dein Passwort.

Teil 1
Teil 1 von 2:

Einen Try Block und ein HttpURLConnection Objekt erstellen

PDF herunterladen
  1. 1
    Füge dem Android Manifest Internet-Berechtigung hinzu. Das Android Manifest ist eine XML-Datei, die dem Android-System wichtige Informationen liefert, die die Kompatibilität des Geräts und Zugriff auf Funktionen bestimmen. Füge in der Datei “AndroidManifest.xml” die folgende Zeile ein, um Internetzugang zu gewähren.
    <uses-permission android:name="android.permission.INTERNET" />
  2. 2
    Erstelle einen "try Block". In Java ist ein try Statement ein Exception Handler, der verhindert, dass das Programm abstürzt, wenn es keine Aktion ausführen kann. Da dafür eine Netzwerkverbindung nötig ist, fängt ein try Statement eine Ausnahme ab, wenn keine Verbindung hergestellt werden kann. Du kannst dies einer neuen Java-Methode hinzufügen.[2]
    try {//gib Statements ein, die zu Ausnahmen führen können}
  3. 3
    Erstelle HttpURLConnection und URL Objekte. Java ist eine objektorientierte Sprache. Ein Objekt besteht aus Zuständen und Verhaltensweisen, die Instanzen einer Klasse sind. Das HttpURLConnection Objekt sendet und empfängt Daten über das Internet. Beginne die neue Methode in deinem Code, indem du ein URL-Objekt erstellst und ihm eine URL für das HttpURLConnection Objekt zuweist, mit dem es sich verbinden soll. [3]
    URL url = new URL(http://beispielURL.com/”);HttpURLConnection client = (HttpURLConnection) url.openConnection();
    Werbeanzeige
  • Etabliere das URL und HttpURLConnection Objekt am besten außerhalb des try Blocks, damit das Abfangen von Ausnahmen einfacher wird.
URL url = new URL(http://beispielURL.com/”);HttpURLConnection client = null;try {client = (HttpURLConnection) url.openConnection();}
Teil 2
Teil 2 von 2:

Den Output Request und die Handling Exceptions posten

PDF herunterladen
  1. 1
    Setze die request Methode auf "post". Um Informationen an den Server zu senden, musst du mithilfe von setDoOutput() den Typ des HttpURLConnection Objekts auf "post" stellen und die Ausgabe auf "true". Verwende die Funktion setRequestProperty(), um ein allgemeines request property festzulegen, das zwei Elemente erfordert, einen Schlüssel mit einem bekannten Request des Servers und einen Wert, der im entsprechenden Schlüssel enthalten ist.
    • Die Funktion setRequestProperty() wird als Accept-Encoding Request Header verwendet, um eine automatische Dekomprimierung zu deaktivieren.
    client.setRequestMethod(POST);client.setRequestProperty(Key,Value);client.setDoOutput(true);
  2. 2
    Gib den Stream an den Server aus. Du musst den Output-Stream vom Server anfordern, um den Output-Stream schreiben ("posten") und dann flushen und schließlich schließen zu können.
    OutputStream outputPost = new BufferedOutputStream(client.getOutputStream());writeStream(outputPost);outputPost.flush();outputPost.close();
    • Aus Performance-Gründen ist es eine gute Idee, den Server darüber zu informieren, wie groß die Datei in Bytes sein wird. Die beste Methode ist setFixedLengthStreamingMode(int), wenn die Body-Länge bekannt ist,[4] wohingegen setChunkedStreamingMode(int) verwendet wird, wenn seine Länge nicht bekannt ist.[5] Wenn du keine der beiden Methoden verwendest, führt dies dazu, dass das HttpURLConnection Objekt den kompletten Body im Speicher puffert, bevor er übermittelt wird.
    client.setFixedLengthStreamingMode(outputPost.getBytes().length);client.setChunkedStreamingMode(0);
  3. 3
    Fange Ausnahmen ab. Verwende nach dem try Statement den catch Block, um mit IOException auf eine Ausnahme bei der Eingabe und der Ausgabe zu prüfen, einen URL-Fehler mit der MalformedURL Ausnahme abzufangen und mit SocketTimeoutException zu prüfen, ob die URL nicht zeitnah eine Reaktion liefert.
    catch(MalformedURLException error) {//Behandelt eine falsch eingegebene URL}catch(SocketTimeoutException error) {//Behandelt einen URL Access Timeout.}catch (IOException error) {//Behandelt Eingabe- und Ausgabefehler}
  4. 4
    Trenne dich von der URL. Nachdem du mit der URL-Verbindung fertig bist, musst du dich von der URL trennen. Prüfe, dass du mit einer URL verbunden bist, bevor du eine Trennung versuchst.
    finally {if(client != null) // Stelle sicher, dass die Verbindung nicht null ist.client.disconnect();}
    Werbeanzeige

Was du brauchst

  • Eine Java IDE
  • Android Entwicklungs-Tools (SDK, Emulator etc.)
  • Ein Android Entwickler-Telefon oder ein anderes Gerät mit Android (optional zum Testen)
  • Eine Internetverbindung (zum Testen)

Über dieses How.com.vn

unter Mitarbeit von :
Jessica Andzouana
Der Co-Autor dieses Artikels ist , einer unserer Artikel-Mitverfasser. How.com.vn Artikel Co-Autoren arbeiten eng mit unseren Editoren zusammen um sicherzustellen, dass der Inhalt unserer Artikel so akkurat und umfassend wie möglich ist. Dieser Artikel wurde 8.178 Mal aufgerufen.
Kategorien: Internet | Computer | Android
Diese Seite wurde bisher 8.178 mal abgerufen.

War dieser Artikel hilfreich?

⚠️ Disclaimer:

Content from Wiki How Deutsch language website. Text is available under the Creative Commons Attribution-Share Alike License; additional terms may apply.
Wiki How does not encourage the violation of any laws, and cannot be responsible for any violations of such laws, should you link to this domain, or use, reproduce, or republish the information contained herein.

Notices:
  • - A few of these subjects are frequently censored by educational, governmental, corporate, parental and other filtering schemes.
  • - Some articles may contain names, images, artworks or descriptions of events that some cultures restrict access to
  • - Please note: Wiki How does not give you opinion about the law, or advice about medical. If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.
  • - Readers should not judge the importance of topics based on their coverage on Wiki How, nor think a topic is important just because it is the subject of a Wiki article.

Werbeanzeige