wake-up-neo.net

In der Volleybibliothek, die com.Android.volley.ServerError gibt

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.

5
Vikas Gaurav

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.

4
Anil Ghodake

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.

4
Umasankar

Der Antwortcode 400 bedeutet "Bad Request".

Gründe dafür.

  1. Möglicherweise liegt ein Problem in der Anforderungsmethode vor. Ist es GET oder POST?.
  2. Die API erwartet möglicherweise einen Berechtigungsheader.
3
Code-Warrior

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!

1
Sachin Soma

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");
0
alextfos