Я использую Volley
, чтобы сделать запрос POST
в моем приложении, и в моем случае хороший ответ - 201
с пустым телом. Для выполнения вызова я использую JSONRequest
.
Моя проблема в том, что обработчик ответа об ошибке получает вызов, потому что ответ пуст.
Ниже мой запрос:
Request request = new JsonRequest<Object>(Request.Method.POST, url, body, new Response.Listener<Object>() {
@Override
public void onResponse(Object response) {
}
}, new ErrorListener(context)) {
@Override
protected Response<Object> parseNetworkResponse(NetworkResponse response) {
Log.d(TAG, "success!!!!!!");
if (response.statusCode == 201)
mListener.resetPasswordWasSent();
return null;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("Content-Type","application/json");
params.put("Accept", "application/json");
return params;
}
};
requestQueue.add(request);
Моя функция parseNetworkResponse
получает вызов, тогда метод ErrorListener
и onResponse
никогда не получает хиты, потому что я получаю NullPointerException
в ErrorListener
.
Я могу игнорировать NullPointerException
в моем прослушивателе ошибок, но я бы предпочел не делать этого. Очевидно, я могу просто отправить свой обратный вызов в parseNetworkResponse
, но я не хочу, чтобы возникали ошибки.
Кто-нибудь знает, как я должен справиться с этим?
Edit: Вот stacktrace:
05-06 09:44:19.586 27546-27560/com.threepoundhealth.euco E/Volley﹕ [1830] NetworkDispatcher.run: Unhandled exception java.lang.NullPointerException
java.lang.NullPointerException
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:126)