Volley JsonObjectRequest Post-Parameter funktionieren nicht mehr

Ich versuche, POST-Parameter in einer Volley JsonObjectRequest zu senden. Anfänglich,it arbeitete für mich durch Befolgen der Anweisungen des offiziellen Codes zum Übergeben eines JSONObjects, das die Parameter im Konstruktor des JsonObjectRequest enthält. Dann hörte es plötzlich auf zu funktionieren und ich habe keine Änderungen am Code vorgenommen, der zuvor funktionierte. Der Server erkennt nicht mehr, dass POST-Parameter gesendet werden. Hier ist mein Code:

RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://myserveraddress";

// POST parameters
Map<String, String> params = new HashMap<String, String>();
params.put("tag", "test");

JSONObject jsonObj = new JSONObject(params);

// Request a json response from the provided URL
JsonObjectRequest jsonObjRequest = new JsonObjectRequest
        (Request.Method.POST, url, jsonObj, new Response.Listener<JSONObject>()
        {
            @Override
            public void onResponse(JSONObject response)
            {
                Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_SHORT).show();
            }
        },
        new Response.ErrorListener()
        {
            @Override
            public void onErrorResponse(VolleyError error)
            {
                Toast.makeText(getApplicationContext(), error.toString(), Toast.LENGTH_SHORT).show();
            }
        });

// Add the request to the RequestQueue.
queue.add(jsonObjRequest);

Hier ist der einfache Tester-PHP-Code auf dem Server:

$response = array("tag" => $_POST["tag"]);
echo json_encode($response);

Die Antwort, die ich bekomme, ist{"tag":null}
Gestern hat es gut funktioniert und hat mit @ geantwort{"tag":"test"}
Ich habe nichts geändert, aber heute funktioniert es nicht mehr.

Im Volley-Quellcode-Konstruktor javadoc heißt es, dass Sie im Konstruktor ein JSONObject übergeben können, um Post-Parameter an "@param jsonRequest" zu senden:https: //android.googlesource.com/platform/frameworks/volley/+/master/src/main/java/com/android/volley/toolbox/JsonObjectRequest.jav

/ **
* Erstellt eine neue Anfrage.
* @Param-Methode die HTTP-Methode zur Verwendung von
* @Param URL zum Abrufen des JSON von
* @Param jsonRequest Ein {@link JSONObject}, das mit der Anfrage gepostet werden soll. Null ist erlaubt und
* Gibt an, dass keine Parameter zusammen mit der Anfrage gesendet werden.

Ich habe andere Posts mit ähnlichen Fragen gelesen, aber die Lösungen haben bei mir nicht funktioniert:

Volley JsonObjectRequest Post Anfrage funktioniert nicht

Volley Post JsonObjectRequest ignoriert Parameter bei Verwendung von getHeader und getParams

Volley sendet keine Post-Anfrage mit Parametern.

Ich habe versucht, das JSONObject im JsonObjectRequest-Konstruktor auf null zu setzen, dann die Parameter in den Methoden "getParams ()", "getBody ()" und "getPostParams ()" zu überschreiben und festzulegen, aber keine dieser Überschreibungen hat funktioniert für mich. Ein weiterer Vorschlag war, eine zusätzliche Hilfsklasse zu verwenden, die im Grunde genommen eine benutzerdefinierte Anforderung erstellt, die jedoch für meine Anforderungen etwas zu komplex ist. Wenn es darauf ankommt, werde ich alles tun, damit es funktioniert, aber ich hoffe, dass es einen einfachen Grund gibt, warum mein Codewa Arbeiten und dann einfachgestopp und auch eine einfache Lösung.

Antworten auf die Frage(22)

Ihre Antwort auf die Frage