This page 说我们可以注册一个 Listener 到 volley 请求来处理错误: https://developer.android.com/training/volley/simple
但是它没有提到什么样的错误会触发这个监听器。 Volley javadoc 对此也没有任何说明。
具体来说,如果发生网络错误,是否会执行此监听器。 我问这个是因为我遇到了以下形式的 android 代码:
private void method() {
String URL = "";
final int[] status_code = new int[1];
StringRequest request = new StringRequest(Request.Method.POST, URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (status_code[0] == 200) {
// do something
} else {
// display toast
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// display toast
}
}) {
@Override
protected Response<String> parseNetworkResponse(NetworkResponse response) {
status_code[0] = response.statusCode;
return super.parseNetworkResponse(response);
}
};
// add request to queue
}
此代码似乎表明注册的 ErrorListener
不会因网络错误而被调用。
什么条件导致注册到 Volley
请求的 ErrorListener
被调用
最佳答案
ErrorListener
被 4xx
响应和 5xx
响应触发 我不知道 3xx
会发生什么重定向响应,因为它没有发生在我身上。
这是一个包含所有 HTTP 响应代码的列表: https://www.restapitutorial.com/httpstatuscodes.html
关于java - 是什么导致注册到 volley 请求的 ErrorListener 被触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52725449/