Ich habe jede einzelne verfügbare Methode auf Stackoverflow versucht, aber das Ergebnis bleibt gleich.Code-Response-Code 400 beim Senden von POST-Parametern und Headern mit Volley
I want to send params and also api key in the Authorization field of header using volley.
Hier ist das Code-Snippet.
holder.comment_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String POSTCOMMENT_URL = Utility.getIPADDRESS()+"comments";
volleySingleton = VolleySingleton.getInstance();
requestQueue = volleySingleton.getRequestQueue();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, POSTCOMMENT_URL, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("Response: " , response.toString());
Toast.makeText(myApplication.getApplicationContext(),response.toString(),Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(myApplication.getApplicationContext(),"Error", Toast.LENGTH_LONG).show();
}
}){
@Override
public String getBodyContentType() {
return "application/x-www-form-urlencoded; charset=UTF-8";
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("Authorization", getApiKey());
return params;
}
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("pid", "39");
params.put("comment", "mobile testing");
return params;
}
};
requestQueue.add(jsonObjectRequest);
}
});
ich diesen Fehler:
[5333] BasicNetwork.performRequest: Unexpected response code 400 for http://www.XXXXXXXXXXX.com/comments
Ich habe bereits getestet, um den Endpunkt mit Advanced REST-Client, funktioniert es und gibt den JsonObject mit zuvor hinzugefügten Kommentar.
Hier sind die Ergebnisse:
{
"error": false
"message": "comment added successfully added!"
"comment_id": "12"
"user_id": "12"
"pid": "39"
"comment": "testing for stackoverflow"
"date of comment": "2016-07-30 13:49:08"
}
Was bedeutet 400? – greenapps
Die Anfrage konnte vom Server aufgrund einer fehlerhaften Syntax nicht verstanden werden. Kurz gesagt _Bad Netzwerkanforderung_. –
'Zeichenfolge POSTCOMMENT_URL = Utility.getIPADDRESS() +" Kommentare ";'. Das sollte "String POSTCOMMENT_URL = Utility.getIPADDRESS() +"/comments ";"? Wenn nicht, dann ist der Funktionsname verwirrend. – greenapps