Ich versuche herauszufinden, wie man JSON von Android mithilfe von HTTPClient POST. Ich habe eine Weile versucht, dies herauszufinden. Ich habe online viele Beispiele gefunden, aber ich kann keines davon zum Laufen bringen. Ich glaube, das liegt an meinem Mangel an JSON- / Netzwerkkenntnissen im Allgemeinen. Ich weiß, dass es viele Beispiele gibt, aber könnte mich jemand auf ein aktuelles Tutorial verweisen? Ich suche nach einem schrittweisen Prozess mit Code und einer Erklärung, warum Sie jeden Schritt ausführen oder was dieser Schritt bewirkt. Es muss kein komplizierter, einfacher Wille sein.
Wiederum weiß ich, dass es eine Menge Beispiele gibt. Ich suche nur nach einem Beispiel mit einer Erklärung, was genau passiert und warum es so läuft.
Wenn jemand etwas über ein gutes Android-Buch darüber weiß, dann lass es mich wissen.
Nochmals vielen Dank für die Hilfe @terrance, hier ist der Code, den ich unten beschrieben habe
public void shNameVerParams() throws Exception{
String path = //removed
HashMap params = new HashMap();
params.put(new String("Name"), "Value");
params.put(new String("Name"), "Value");
try {
HttpClient.SendHttpPost(path, params);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
quelle
Antworten:
In dieser Antwort verwende ich ein Beispiel von Justin Grammens .
Über JSON
JSON steht für JavaScript Object Notation. In JavaScript - Eigenschaften können beide wie folgt referenziert werden
object1.name
und wie dieseobject['name'];
. Das Beispiel aus dem Artikel verwendet dieses JSON-Bit.Die Teile
Ein Fanobjekt mit E-Mail als Schlüssel und [email protected] als Wert
Das Objektäquivalent wäre also
fan.email;
oderfan['email'];
. Beide hätten den gleichen Wert von'[email protected]'
.Informationen zur HttpClient-Anforderung
Das Folgende hat unser Autor verwendet, um eine HttpClient-Anfrage zu stellen . Ich behaupte nicht, überhaupt ein Experte zu sein. Wenn also jemand eine bessere Möglichkeit hat, einen Teil der Terminologie zu formulieren, fühlen Sie sich frei.
Karte
Wenn Sie mit der
Map
Datenstruktur nicht vertraut sind, lesen Sie bitte die Java Map-Referenz . Kurz gesagt, eine Karte ähnelt einem Wörterbuch oder einem Hash.Bitte zögern Sie nicht, Fragen zu diesem Beitrag zu kommentieren, oder wenn ich etwas nicht klargestellt habe oder wenn ich etwas nicht berührt habe, über das Sie immer noch verwirrt sind ... usw., was auch immer in Ihrem Kopf auftaucht.
(Ich werde abnehmen, wenn Justin Grammens nicht zustimmt. Aber wenn nicht, dann danke Justin, dass er cool ist.)
Aktualisieren
Ich habe gerade einen Kommentar zur Verwendung des Codes erhalten und festgestellt, dass beim Rückgabetyp ein Fehler aufgetreten ist. Die Methodensignatur wurde so festgelegt, dass eine Zeichenfolge zurückgegeben wird. In diesem Fall wurde jedoch nichts zurückgegeben. Ich habe die Signatur in HttpResponse geändert und verweise auf diesen Link unter Abrufen des Antworttextes von HttpResponse. Die Pfadvariable ist die URL. Ich habe sie aktualisiert, um einen Fehler im Code zu beheben.
quelle
getJsonObjectFromMap()
: JSONObject hat einen Konstruktor, der Folgendes benötigtMap
: developer.android.com/reference/org/json/…Hier ist eine alternative Lösung zur Antwort von @ Terrance. Sie können die Konvertierung einfach auslagern. Die Gson-Bibliothek leistet hervorragende Arbeit bei der Konvertierung verschiedener Datenstrukturen in JSON und umgekehrt.
Ähnliches kann mit Jackson anstelle von Gson geschehen. Ich empfehle auch einen Blick auf Retrofit, das einen Großteil dieses Boilerplate-Codes für Sie verbirgt. Für erfahrene Entwickler empfehle ich, RxAndroid auszuprobieren .
quelle
execute()
und es ist natürlich fehlgeschlagenIch empfehle stattdessen, dies zu
HttpURLConnection
verwendenHttpGet
. WieHttpGet
bereits in Android API Level 22 veraltet.quelle
Zu viel Code für diese Aufgabe. Überprüfen Sie diese Bibliothek. Https://github.com/kodart/Httpzoid Is verwendet GSON intern und bietet eine API, die mit Objekten funktioniert. Alle JSON-Details sind ausgeblendet.
quelle
Es gibt verschiedene Möglichkeiten, eine HHTP-Verbindung herzustellen und Daten von einem RESTFULL-Webdienst abzurufen. Der neueste ist GSON. Bevor Sie jedoch mit GSON fortfahren, müssen Sie eine Vorstellung von der traditionellsten Methode zum Erstellen eines HTTP-Clients und zur Datenkommunikation mit einem Remote-Server haben. Ich habe beide Methoden zum Senden von POST & GET-Anforderungen über HTTPClient erwähnt.
quelle