Search code examples
androidandroid-studioandroid-volley

Android volley show Unexpected response code 500


I use method POST with Volley library. All it work fine but not display toast "Successful".
Below is code that I achieve update content with my server is successful.

String uri = "http://192.168.0.103:3000/api/SampleParticipant";
StringRequest request = new StringRequest(Request.Method.POST, uri,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {

                            Toast.makeText(getApplicationContext(), "Successful" , Toast.LENGTH_SHORT).show();
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            Toast.makeText(getApplicationContext(), "Error: " + error, Toast.LENGTH_SHORT).show();
                        }
                    })
            {//Body
                @Override
                protected Map<String, String> getParams() {
                    Map<String, String> params = new HashMap<String, String>();
                    params.put("participantId", editText2.getText().toString());
                    params.put("name", editText3.getText().toString());
                    return params;
                }
            };
            // Create Volley
            RequestQueue queue = Volley.newRequestQueue(this);
            queue.add(request);


But in android studio show like this.

D/Volley: [1124] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] http://192.168.0.103:3000/api/SampleParticipant 0x85adf657 NORMAL 1> [lifetime=5381], [size=704], [rc=500], [retryCount=1]
E/Volley: [1124] BasicNetwork.performRequest: Unexpected response code 500 for http://192.168.0.103:3000/api/SampleParticipant
D/EGL_emulation: eglMakeCurrent: 0xa3f85420: ver 2 0 (tinfo 0xa3f83350)
D/EGL_emulation: eglMakeCurrent: 0xa3f85420: ver 2 0 (tinfo 0xa3f83350)

Solution

  • It is an error from server side, nothing to do with volley

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

    You can handle 500 error like this

    @Override
    public void onResponse(Response<YourModel> response) {
        if (response.code() == 200) {
           // Do awesome stuff
        } else if(response.code() == 500){
           Toast.makeText(this, "Error: internal server error", Toast.LENGTH_SHORT).show();
        }
    }