Volley Server Fehler mit null Netzwerkantwort

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

Wenn ich die GET-Methode verwende, funktioniert dies einwandfrei (ich erhalte eine Antwort von meiner URL).

ann jemand helfen, was kann ich tu

    Map<String, String> jsonParams = new HashMap<String, String>();
    jsonParams.put("teststr", "abd");

    RequestQueue requestQueue = VolleySingleton.getInstance().getRequestQueue();
    JsonObjectRequest request = new JsonObjectRequest(
            Request.Method.POST,
            url,
            new JSONObject(jsonParams),
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {

                    try {
                        Toast.makeText(getApplicationContext(), "Success"+response.toString(), Toast.LENGTH_LONG).show();
                    }catch(Exception e){
                        Toast.makeText(getApplicationContext(), "JSON ERROR", Toast.LENGTH_LONG).show();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.d("abd", "Error: " + error
                                    + ">>" + error.networkResponse.statusCode
                                    + ">>" + error.networkResponse.data
                                    + ">>" + error.getCause()
                                    + ">>" + error.getMessage());
                }
            }) {

                @Override
                protected Map<String,String> getParams() {
                    HashMap<String, String> params = new HashMap<String, String>();
                    params.put("key", "value");
                    return params;
                }

                @Override
                public Map<String, String> getHeaders() throws AuthFailureError {
                    HashMap<String, String> headers = new HashMap<String, String>();
                    headers.put("Content-Type", "application/json; charset=utf-8");
                    return headers;
                }
    };
    requestQueue.add(request);

Fehlerprotokoll

Error: Fehler: com.android.volley.ServerError >> 404 >> [B @ 42b1e0d0 >> null >> null

AKTUALISIEREN networkResponse.statusCode wird als 404 geliefert, obwohl auf die URL zugegriffen werden kann (und Daten zurückgegeben werden, wenn ich nur die GET-Methode verwende). Wenn ich den Header-Teil in der POST-Methode entferne, ist dies immer noch dieselbe.

der URL:

<?php
    $response = array();

    $jsonString = file_get_contents('php://input');
    $jsonObj = json_decode($jsonString, true);

    if(!isset($jsonObj['teststr'])){
        $response["msg"] = "No data.";
    }else{
        $response["msg"] = "Success: ".$jsonObj['teststr'];
    }
    echo json_encode($response);
?>

Antworten auf die Frage(12)

Ihre Antwort auf die Frage