Android StringRequest не улавливает ошибку Laravel

#android #error-handling #android-volley

Вопрос:

Я пытаюсь получить ответ от серверной части Laravel, которую я запускаю на своем локальном компьютере, я получаю правильное сообщение 201 (созданное) при создании нового пользователя, но когда я пытаюсь создать пользователя с тем же адресом электронной почты (который настроен для проверки Laravel), я получаю сообщение 200. Я использую volley для отправки запроса, но единственный ответ, который дает мне volley, — это какой-то код типа «VolleyResponse: [B@ae99a70». Это возвращается с помощью String.valueof(response.data);

Вот мой полный запрос на строку:

 if (formIsValid) {
        try {
            authenticating = true;
            JSONObject jsonBody = new JSONObject();
            jsonBody.put("name", username);
            jsonBody.put("email", email);
            jsonBody.put("password", password);
            final String requestBody = jsonBody.toString();
            StringRequest stringRequest = new StringRequest(Request.Method.POST, database_url, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.d("Volley", response);
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.d("heeftNietGewerkt", error.getMessage());
                }
            }) {
                @Override
                public String getBodyContentType() {
                    return "application/json; charset=utf-8";
                }

                @Override
                public byte[] getBody() throws AuthFailureError {
                    return requestBody.getBytes();
                }

                @Override
                protected Response<String> parseNetworkResponse(NetworkResponse response) {
                    String responseString = "";
                    if (response != null) {
                        responseString = String.valueOf(response.statusCode);
                        Log.d("VolleyResponse", String.valueOf(response.data));
                    }
                    return Response.success(responseString, HttpHeaderParser.parseCacheHeaders(response));
                }
            };

            queue.add(stringRequest);
            authenticating = false;
            Toast.makeText(getActivity().getApplicationContext(), "Succesvol geregistreerd", Toast.LENGTH_SHORT).show();
        } catch (JSONException e) {
            Log.d("VolleyError", String.valueOf(e));
        }

    } else {
        Toast.makeText(getActivity().getApplicationContext(), "Verkeerde informatie ingevuld", Toast.LENGTH_SHORT).show();
    }
 

Похоже, что onErrorResponse никогда не вызывается, но вызывается только onResponse. Я знаю, что должен каким-то образом подключиться к ответу, но я просто не могу этого понять, к тому же совершенно новый для Android.