Volley Server Fehler mit Null Netzwerkantwort

8

Jedes Mal, wenn ich versuche, die POST-Methode mit Volley zu verwenden, erhalte ich einen schweren Fehler. Ich bekomme null Wert in getCause und einen Standardwert in getNetworkResponse.toString ().

Wenn ich GET-Methode verwende, funktioniert das gut (ich bekomme Antwort von meiner URL).

Kann jemand helfen, was kann ich tun?

%Vor%

Fehlerprotokoll:

  

Fehler:   Fehler: com.android.volley.ServerError & gt; & gt; 404 & gt; & gt; [B @ 42b1e0d0 & gt; & gt; Null & gt; & gt; null

UPDATE: networkResponse.statusCode kommt als 404, obwohl die URL zugänglich ist (und Daten zurückgibt, wenn ich nur die GET-Methode verwende). Wenn ich Header-Teil in der POST-Methode entfernen, immer noch die gleichen.

die URL:

%Vor%     
abdfahim 14.05.2015, 01:29
quelle

5 Antworten

5

Stellen Sie zuerst sicher, dass Ihr Server gut funktioniert. Sie können Postman (chrome-plug-in) oder eine andere Möglichkeit verwenden, um eine Post-Anfrage an die URL zu senden und zu sehen, wie sie reagiert.

Nachdem Sie sichergestellt haben, dass Ihr Server kein Problem hat, lassen Sie uns das Problem mit Volley lösen.

Es gibt ein Problem mit JsonObjectRequest , wenn Sie die POST-Methode verwenden. gefällt das Die Anfrage von Volley JsonObjectRequest Post funktioniert nicht .

Ich schlage vor, dass Sie StringRequest zuerst verwenden und die getParams Methode wie zuvor überschreiben. Nachdem Sie diese Aufgabe überstanden haben, können Sie versuchen, Ihre eigene Anfrage zu schreiben, nicht sehr schwierig, aber sehr nützlich.

Ich schlage auch vor, request.setShouldCache(false) vor requestQueue.add(request); hinzuzufügen. Standardmäßig speichert Volley die Antwort in ihrem Cache und dieses Verhalten kann zu seltsamen Problemen führen.

    
Kay Wu 14.05.2015 03:07
quelle
0

Nun, ich denke, Sie können zuerst den responseCode in Ihrem logcat drucken

    
shoxive 14.05.2015 02:37
quelle
0

Fügen Sie diesen Code vor dem Hinzufügen zur Warteschlange hinzu

  

request.setRetryPolicy (neue DefaultRetryPolicy (0, -1,   DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

Manchmal ist die Anfrage ein Timeout, bevor Ihr php vollständig ausgeführt wurde. also probiere diesen Code. vielleicht kann helfen

    
Bamz3r 03.04.2016 06:19
quelle
0

Volley behandelt nicht eingebaute POST-Methode-Parameter perfekt, so dass Sie eine benutzerdefinierte Antwort erstellen müssen.

Die Antwort wird von katwal-Dipak auf anderen ähnlichen Posts gepostet. Ссылка

Was perfekt funktioniert. Danke.

    
Dawn Impulse 27.01.2017 07:33
quelle
0

vielleicht hängt es mit Ihrem Operator zusammen ...

Ich habe das gleiche Problem beim Senden von JasonObject mit Volley.

Ich habe meine App auf 9-10 Geräten mit zwei verschiedenen Operatoren getestet.

Die Anfrage auf einen Operator gibt einen Fehler mit allem Null oder leere Daten zurück, auf der anderen funktioniert alles einwandfrei und ich bekomme meine Antwort von API erfolgreich.

Ich habe keine Ahnung, was Betreiber tun, die dieses Problem verursachen ... Vielleicht verwenden sie eine Art Firewall, die das Senden von JsonObject blockiert.

    
S.Aslpour 02.02.2017 10:44
quelle

Tags und Links