使用以下任何示例: http://developer.android.com/training/volley/request.html
我了解如何处理成功请求的响应,以及如何检测错误并使用react。
但是,错误可能是(在其他情况下)来自服务器的 40 倍或 50 倍响应,在这种情况下,响应仍然可以包含数据( header 和正文)。
但是错误监听器只传递了一个 VolleyError 对象(如果我没记错的话,它是 Exception 的子类)而不是一个 Response 对象。
如何访问错误响应的内容?
最佳答案
VolleyError
对象有一个networkResponse
引用,它本身有一个'data' 成员,它是响应体的字节数组。如果您想在响应出现错误代码的情况下查看数据,您可以使用如下内容:
@Override
public void onErrorResponse(VolleyError error) {
String body;
//get status code here
String statusCode = String.valueOf(error.networkResponse.statusCode);
//get response body and parse 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 - 如何访问 Volley 中错误响应的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26167631/