So führen sie http-postanfragen in android aus

Der HTTP-Beitrag ist Teil einer veralteten HTTP-Klassen wie Org.Apache.http und androidhttpclient ab Android 5.1. Migrieren Sie Ihren Code an die HTTPURLConnection-Klassen, die die Buchungsfunktion enthalten.Die HTTP-Post wird in Java verwendet, um anzufordern, dass ein bestimmter Webserver, der Daten erhalten und speichern, die innerhalb eines Anforderungsformulars eingereicht werden sollen. Die Daten werden übermittelt und in Namenswertpaaren gespeichert. Beispiele für Paare umfassen: E-Mail-E-Mail-E-Mail-Adress-Benutzername-Ihr Benutzername- und Passwort - Ihr Passwort.

Schritte

Teil 1 von 2:
Erstellen eines Versuchsblocks und des httpurlconnection-Objekts
1. Fügen Sie der Android Manifest Internet-Berechtigungen hinzu. Das Android-Manifest ist eine XML-Datei, die wichtige Informationen an das Android-System bereitstellt, das die Gerätekompatibilität und den Zugriff auf Funktionen ermittelt. Im "Androidmanifest.XML-Datei, geben Sie die folgende Zeile ein, um den Internetzugang zu erhalten.
 Android: Name ="Android.Genehmigung.INTERNET" />
  • 2. Erstellen Sie einen Versuch-Block. In Java ist eine Try-Anweisung ein Ausnahme-Handler, der verhindert wird, dass das Programm abgestürzt wird, wenn er keine Aktion ausführen kann. Da dies eine Verbindung zu einem Netzwerkstandort benötigt, fängt eine Try-Anweisung eine Ausnahme auf, wenn er keine Verbindung herstellen kann. Sie können dies einer neuen Java-Methode hinzufügen.
    Versuchen Sie {// Geben Sie Anweisungen ein, die Ausnahmen verursachen können}
  • 3. Erstellen Sie httpurlconnection- und url-Objekte. Java ist eine objektorientierte Sprache. Ein Objekt besteht aus Staaten und Verhaltensweisen, die eine Instanz einer Klasse ist. Das HTTPURLConnection-Objekt sendet und empfängt Daten über das Internet. Beginnen Sie in Ihrem Code Ihre neue Methode, indem Sie ein URL-Objekt erstellen, und weisen Sie ihm eine URL für das HTTPURLConnection-Objekt an, um eine Verbindung herzustellen.
    URL-URL = neue URL ("http: // zexurl).com / ") - HTTPURLConnection Client = (httpurlconnection) URL.OpenConnection ()-
  • Stellen Sie zur Best-Practice die URL- und HTTPURLConnection-Objekte außerhalb des Versuchsblocks fest, damit er die Ausnahmen erleichtert.
  • URL-URL = neue URL ("http: // zexurl).com / ") - HTTPURLConnection Client = Null-TRY {Client = (httpurlconnection) URL.OpenConnection () -}
    Teil 2 von 2:
    Buchungsanforderung und Umgang mit Ausnahmen
    1. Stellen Sie die Anforderungsmethode ein, um zu posten. Um Informationen an den Server zu senden, müssen Sie den Typ des HTTPURLCONNECTION-Objekts einstellen, um den Ausgang mit SETDOOUTPUT () auf TRUE einzustellen und einzustellen. Verwenden Sie die Funktion SetRequestProperty (), um eine allgemeine Anforderungseigenschaft einzustellen, die zwei Elemente erfordert, ein Schlüssel mit einer bekannten Anforderung vom Server und einen Wert, der in der entsprechenden Taste enthalten ist.
    • Die SETREQUEQUESTPROPERTY () -Funktion wird als Akzeptierkodierungsanforderungsheader verwendet, um die automatische Dekompression zu deaktivieren.
    Klient.setRequestMethod ("Post") - Kunde.setRequestProperty ("Taste", "Wert") - Client.setdooutput (true)-
  • 2. Geben Sie den Stream auf den Server aus. Sie müssen den Ausgabestrom vom Server anfordern, um in den Ausgangsstrom schreiben zu können, oder posten Sie den Strom, und schließen Sie den Strom, wenn Sie fertig sind.
    OutputStream AusgabePost = Neuerpufferredoutputstream (Client.Getoutputstream ()) - WriteStream (AusgabePost) -OutputPost.Flush () - Ausgangspost.schließen()-
  • Aus Leistungsgründen ist es eine gute Idee, den Server zu informieren, wie groß in Bytes der Inhalt sein wird. Die beste Methode ist setfixedlängenstreamingmode (int), wenn die Körperlänge bekannt ist, während SetchunkedStreamingMode (INT) verwendet wird, wenn die Länge nicht bekannt ist. Verwenden Sie keine der vorherigen Methoden, bewirkt, dass das HTTPURLConnection-Objekt den gesamten Speicher in der Erinnerung aufpuffert, bevor Sie übertragen werden.
  • Klient.setfixedlängenstreamingMode (AusgabePost.GETBYTES ().Länge) -Client.SetchunkedStreamingMode (0)-
  • 3. Irgendwelche Ausnahmen fangen. Verwenden Sie nach der Versuch-Anweisung den Fangblock, um eine Ausnahme für die Eingabe und Ausgabe mit IOException zu überprüfen, einen URL-Fehler mit der Malformedurl-Ausnahme zu fangen, und prüfen Sie, ob die URL keine Antwort mit der SockettIm-Outexception bereitstellt.
    Catch (Malformedurlexception-Fehler) {// Griffe eine falsch eingegebene URL} Catch (SockettImaSitexception-Fehler) {// Griffe URL-Zugriffszeit.} Catch (IOException-Fehler) {// Griffe Eingabe- und Ausgaberfehler}
  • 4. Trennen Sie die URL von der URL. Nachdem Sie mit Ihrer URL-Verbindung fertiggestellt wurden, müssen Sie sich von der URL trennen. Stellen Sie sicher, dass Sie mit einer URL verbunden sind, bevor Sie versuchen, zu trennen.
    Endlich {if (Client != null) // Stellen Sie sicher, dass die Verbindung nicht null ist.Klient.trennen()-}
  • Tipps

    Dinge, die du brauchen wirst

    • Java IDE
    • Android-Entwicklungswerkzeuge (SDK, Emulator usw.)
    • Android Developers Telefon oder anderes Android-angetriebenes Gerät (optional zum Testen)
    • Internetverbindung (zum Testen)
    In Verbindung stehende Artikel