Ich versuche mich in meiner Anwendung anzumelden. Wenn ich versuche, die API mit der Volley-Bibliothek aufzurufen, wird com.Android.volley.ServerError und der Antwortcode 400 angezeigt.
final String username = editTextUsername.getText().toString().trim();
final String password = editTextPassword.getText().toString().trim();
final String email = editTextEmail.getText().toString().trim();
StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put(KEY_USERNAME,username);
params.put(KEY_PASSWORD,password);`enter code here`
params.put(KEY_EMAIL, email);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
Ich sah die vielen Beispiele, bekam aber keine Lösung.
In der folgenden Methode
public void onErrorResponse(VolleyError error)
füge diese Zeile hinzu: -
error.printStackTrace()
Sie erhalten alle Stack-Traces, die Ihnen den tatsächlichen Fehler anzeigen. Ich habe auch diese Fehlermeldung erhalten, aber in meinem Fall handelt es sich tatsächlich um TimeoutException.
Ich hatte das gleiche Problem. Es hat meinen ganzen Tag ausgelaugt. Schließlich fand ich den winzigen Fehler, der besagte, dass ich einen Nullwert in Parametern übergeben habe.
Prüfen Sie, ob Sie in getParams () oder Ihrem JSON-Objekt einen Nullwert an den Server übergeben. Wenn ja, kann das das Problem sein.
Der Antwortcode 400 bedeutet "Bad Request".
Gründe dafür.
Was verursacht diesen Fehler ... 1. Falsche URL, überprüfen Sie Ihre URL auf Fehler . 2. Fehlende Parameter, alle Parameter haben einen Nullwert oder es fehlt ein Parameter . 3.Watch für Die in den Parametern definierten Schlüssel sollten mit denen der APIs übereinstimmen. Hoffe, es hilft!
Dieser Fehler kann BAD REQUEST bedeuten. Überprüfen Sie die Header, die Sie senden. Wenn Sie die Methode getHeaders () überschreiben, können Sie die richtigen Header senden.
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return (headers != null || headers.isEmpty()) ? headers : super.getHeaders();
}
In der Regel benötigen die WebServices außerdem application/json-Header, wie folgt:
headers.put("Accept","application/json");
headers.put("Content-Type","application/json");