Manipular uma resposta vazia em um JSONRequest com Volley
estou a usarVolley
fazer umPOST
pedido na minha candidatura e, no meu caso, uma boa resposta é uma201
com um corpo vazio. Estou usando umJSONRequest
, para fazer a ligação.
Meu problema é que o manipulador de respostas a erros está sendo chamado porque a resposta está vazia.
Abaixo está o meu pedido:
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);
MinhasparseNetworkResponse
está sendo chamada, então a funçãoErrorListener
, e asonResponse
método nunca recebe hits porque eu recebo umNullPointerException
noErrorListener
.
Eu posso ignorar oNullPointerException
no meu ouvinte de erro, mas prefiro não. Obviamente, posso simplesmente enviar minha chamada de retorno noparseNetworkResponse
, mas não quero que ocorram erros.
Alguém sabe como devo lidar com isso?
Editar: Aqui está o 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)