当我向我的 api 请求时,api 返回 204 - 无内容。但是 volley 不承认这一点并给出 TimeOutError。
我该如何处理?
当我向我的 api 请求时,api 返回 204 - 无内容。但是 volley 不承认这一点并给出 TimeOutError。
我该如何处理?
当您设置新的凌空请求时:
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// act upon a valid response
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Handle error
}
});
请注意,您传递了一个Response.ErrorListener. 当错误发生时,例如实例 204,onErrorResponse(VolleyError)回调与VolleyError实例一起调用 - 错误,并带有有关传递给它的错误的适当信息。
因此,在此回调中,您应该检查错误并采取适当的措施。
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if(error instanceof TimeoutError){
// Take action when timeout happens
}
}
}
注意:当超时发生时,该VolleyError实例实际上是TimeoutError一个子类的实例VolleyError。因此我们检查导致的错误是否是超时使用instanceof
VolleyError 子类的列表可在此处获得:http ://afzaln.com/volley/com/android/volley/VolleyError.html
给出的示例适用于StringRequest类型,但技术与其他VolleyObjectRequest类型相同。