0

当我向我的 api 请求时,api 返回 204 - 无内容。但是 volley 不承认这一点并给出 TimeOutError。

我该如何处理?

4

1 回答 1

1

当您设置新的凌空请求时:

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类型相同。

于 2016-05-17T15:11:20.227 回答