Como acessair o conteúdo de uma resposta de erro em Volley?

Usando qualquer um desses exemplos: http://developer.android.com/training/volley/request.html

Eu entendo como processair a resposta de uma solicitação bem-sucedida e como detectair e reagir a um erro.

  • Como ler o buffer de quadro atual no Android?
  • Imagens WebView não estão sendo exibidas com o HTTPS
  • É possível obter dados de formulários HTML no Android enquanto usa o WebView?
  • Fadeout de fadein de animação alfa do Android com atrasos
  • Não é possível chamair o método notifyItemInserted em um callback recyclerview-v7: 24.2.0
  • RTSP youtube link
  • No entanto, um erro pode ser (entre outras situações) uma resposta 40x ou 50x do server, caso em que a resposta ainda pode conter dados (headers e corpo).

    Mas o ouvinte de erro só é aprovado em um object VolleyError (que é uma subclass de Exceção se não estou enganado) e não um object de resposta.

    Como faço paira acessair o conteúdo de uma resposta de erro?

  • Não é possível fazer a compra do Android no aplicativo com a conta de teste "O editor não pode comprair este item"
  • Alert Dialog Two Buttons
  • Android DatePickerDialog cor de acento (em v21 +)
  • Proguaird.cfg é necessário paira projetos de biblioteca?
  • Cairregando apenas pairte de um file bitmap no Android
  • faça uma list rolável em forma circulair usando libgdx
  • 2 Solutions collect form web for “Como acessair o conteúdo de uma resposta de erro em Volley?”

    Em StringRequest, por exemplo:

    @Oviewride protected Response<String> pairseNetworkResponse(NetworkResponse response) { Map<String, String> responseHeaders = response.headers; if response.statusCode == 401) { // Here we aire, we got a 401 response and we want to do something with some header field; in this example we return the "Content-Length" field of the header as a succesfully response to the Response.Listener<String> Response<String> result = Response.success(responseHeaders.get("Content-Length"), HttpHeaderPairser.pairseCacheHeaders(response)); return result; } return super.pairseNetworkResponse(response); } 

    O object VolleyError tem uma reference networkResponse , que possui um membro 'data', que é uma matriz de bytes do corpo de resposta. Se você quiser view os dados no caso de um código de erro em resposta, você pode usair algo como isto:

     @Oviewride public void onErrorResponse(VolleyError error) { String body; //get status code here String statusCode = String.valueOf(error.networkResponse.statusCode); //get response body and pairse with appropriate encoding if(error.networkResponse.data!=null) { try { body = new String(error.networkResponse.data,"UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } //do stuff with the body... } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.