Senden von POST-Daten in Android
Ich bin erfahren mit PHP, JavaScript und viele andere Scriptsprachen, aber ich habe nicht viel Erfahrung mit Java oder Android.
Ich bin auf der Suche nach einem Weg zu schicken POST Daten an ein PHP-Skript und das Ergebnis anzeigen.
InformationsquelleAutor der Frage OMGKurtNilsen | 2010-05-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
* Aktualisiert Antwort, die funktioniert auf Android 6.0+. Dank @Rohit Suthar@Sweetness Bolvari und @sudhiskr für die Kommentare. *
Referenzen:
Ältere Antwort
Hinweis: Diese Lösung ist veraltet. Es funktioniert nur auf Android-Geräten mit bis zu 5.1. Android 6.0 und höher enthalten Sie nicht die Apache http-client, der in dieser Antwort.
Http Client von Apache Commons ist der Weg zu gehen. Es ist bereits Bestandteil von android. Hier ist ein einfaches Beispiel, wie HTTP-Post verwenden.
InformationsquelleAutor der Antwort primpap
für Android 6 & 5
Den org.apache.http Klassen und die AndroidHttpClient Klasse wurden veraltet in Android 5.1. Diese Klassen werden nicht mehr gepflegt, und Sie sollten zu migrieren app-code über diese APIs, um die URLConnection Klassen so bald wie möglich.
https://developer.android.com/about/versions/android-5.1.html#http
Gedanke des Teilens mein code mit HttpUrlConnection
...
außerdem können Sie Post Methode :
Update 21/02/2016
für post Anfrage mit json , siehe dieses Beispiel :
UPDATE 24/08/2016
Verwenden einige best-Bibliothek , wie zum Beispiel :
weil :
Auf niedrigere API-levels (meist auf Gingerbread und Froyo), HttpUrlConnection und HttpClient sind bei weitem nicht perfekt
Seit der Einführung von Honeycomb (API 11), ist es zwingend Netzwerkaufgaben ausführen, in einem separaten thread, die sich von der Haupt-thread
InformationsquelleAutor der Antwort Adnan Abdollah Zaki
Durch diese Weise können wir Daten senden mit http-post-Methode und Resultat
InformationsquelleAutor der Antwort Siddhpura Amit
Dies ist ein Beispiel dafür, wie die POST multi-part-Daten OHNE Verwendung von externen Apache-Bibliotheken:
InformationsquelleAutor der Antwort Andrey
@primpop Antwort, die ich möchte hinzufügen, wie konvertiert man die Antwort in einem String:
Hier ist ein Beispiel von convertStramToString.
InformationsquelleAutor der Antwort Fabricio PH
Besser nutzen Apache Commons HttpClient, das ist auch in android bereits.
Haben Sie einen Blick auf
Android-Entwickler: Apache HTTP-Client-Paket-Zusammenfassung
für Allgemeine api-Informationen.
InformationsquelleAutor der Antwort Toni Menzel
Können Sie diese verwenden, um das senden einer HTTP-POST-Anforderung an eine URL. Sie können einfach Anfrage senden und als Antwort bekommen. Ich immer verwenden Sie diese . Ich fine Arbeit für mich.
Müssen Sie Auch Hinzufügen, Balg-Jar-Datei in libs folde
Schließlich Bearbeiten Ihrer build.gradle
In den letzten Ihr Projekt neu erstellen.
InformationsquelleAutor der Antwort Selim Raza
Können Sie
URLConnection
mitsetDoOutput
(true)
getOutputStream()
(für das senden von Daten), undgetInputStream()
(für den Empfang). Sonne hat ein Beispiel für genau diese.InformationsquelleAutor der Antwort Matthew Flaschen
Bei mir funktioniert weiter :
InformationsquelleAutor der Antwort Sergey Shustikov
Wenn Sie nur wollen, um Daten Anhängen an die Url, so können Sie sich mit HttpUrlConnection seit HttpClient ist jetzt veraltet.
Ein besserer Weg wäre, um eine Bibliothek wie-
Volley
Retrofit
Können wir die post-Daten an das php-Skript und Ergebnis abrufen und zeigen Sie es mit diesem code erfolgt Durch AsyncTask Klasse.
Aber die Verwendung von Bibliotheken wie volley-oder Nachrüstung ist viel bessere option, da Asynctask-Klasse und HttpurlConnection ist langsamer im Vergleich zu Bibliotheken. Auch die Bibliothek holt sich alles und ist auch schneller.
InformationsquelleAutor der Antwort Vipin NU
Fand ich diese hilfreich Beispiel mit diese video-tutorial.
InformationsquelleAutor der Antwort Zacktamondo
Methode, um post-Daten als HTTP-request,
InformationsquelleAutor der Antwort Muhammad Aamir Ali
In neueren Versionen von Android Sie haben, um alle web-I/O-Anfragen in einen neuen thread. AsyncTask funktioniert am besten für kleine Anfragen.
InformationsquelleAutor der Antwort user2312638
Können Sie nach einem HttpRequest WebServer mit der Klasse und verfolgen die Antwort in seinem listener-Schnittstelle.
Erstellen Sie nun eine DataRack binden von Daten
Nun senden Sie einfach die POST-Anfrage mit, dass rack
Müssen Sie auf meine Bibliothek. Dokumentationen hier
InformationsquelleAutor der Antwort Sangeeth Nandakumar
Verwenden Sie die open-source -
okHttp
Bibliothek von Square.okHttp
funktioniert ab Android 2.3 oder höher und hat ein Apache-2.0-Lizenz auf GitHub.Senden von POST-Daten ist so einfach wie das hinzufügen des folgenden in einem AsyncTask:
okHttp
auch über einen mit einem namespace auf maven, so dass Sie es zu Ihrem Android Studio Projekt ist einfach. Fügen Sie einfachcompile 'com.squareup.okhttp3:okhttp:3.11.0'
um Ihre app zu bauen.gradle.Komplette Code
Fügen Sie den folgenden, um Ihre Aktivitäten:
Und rufen Sie es mit:
InformationsquelleAutor der Antwort Advait S