Ich möchte eine neue JsonObjectRequest
Anfrage senden :
- Ich möchte JSON-Daten empfangen (Antwort vom Server): OK
Ich möchte mit dieser Anfrage JSON-formatierte Daten an den Server senden
JsonObjectRequest request = new JsonObjectRequest( Request.Method.POST, "myurl.com", null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { //... } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { //... } }) { @Override protected Map<String,String> getParams() { // something to do here ?? return params; } @Override public Map<String, String> getHeaders() throws AuthFailureError { // something to do here ?? return params; } };
PS Ich verwende die GSON-Bibliothek auch in meinem Projekt.
android
http-post
android-volley
android-json
Anthony
quelle
quelle
HashMap
ist in Ihrem Beispiel irgendwie überflüssig. Sie können den 'Token' direkt in eineJSONObject
Karte ohne Zwischenkarte einfügen.new JSONObject("{\"type\":\"example\"}")
stattdessen - mein schlechtes.Ich weiß, dass dieser Thread ziemlich alt ist, aber ich hatte dieses Problem und habe eine coole Lösung gefunden, die für viele sehr nützlich sein kann, da sie die Volley-Bibliothek in vielen Aspekten korrigiert / erweitert.
Ich habe einige nicht unterstützte, sofort einsatzbereite Volley-Funktionen entdeckt:
JSONObjectRequest
ist nicht perfekt: Man mussJSON
am Ende mit einem rechnen (sieheResponse.Listener<JSONObject>
).ResponseListener
?Ich habe mehr oder weniger viele Lösungen in einer großen generischen Klasse zusammengestellt, um eine Lösung für alle von mir zitierten Probleme zu finden.
Es könnte ein bisschen übertrieben erscheinen, aber es ist ziemlich cool, all diese Konstruktoren zu haben, weil Sie alle Fälle haben:
(Der Hauptkonstruktor sollte nicht direkt verwendet werden, obwohl dies natürlich möglich ist).
Damit es funktioniert, müssen Sie natürlich die GSON Lib von Google haben. einfach hinzufügen:
zu Ihren Abhängigkeiten (aktuelle Version ist
2.3.1
).quelle
toBeSent
Parameter vonObject
zu ändern, um die Typensicherheit zuT
erhöhen.verweisen
quelle
Erstellen Sie ein
RequestQueue
Klassenobjekt.Erstellen Sie einen
StringRequest
Listener mit Antwort und Fehler.Fügen Sie Ihre Anfrage in die
RequestQueue
.Erstellen Sie eine
PostCommentResponseListener
Schnittstelle, damit Sie sie sehen können. Es ist ein einfacher Delegat für die asynchrone Anforderung.Fügen Sie die INTERNET-Berechtigung in die
AndroidManifest.xml
Datei ein.quelle
anstatt:
Sie können verwenden:
quelle
quelle
Sie können auch durch zwingende Daten senden
getBody()
Methode derJsonObjectRequest
Klasse. Wie nachfolgend dargestellt.quelle
quelle