#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.