当我向我的 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
类型相同。