如何从Android排球请求中检测204无内容

时间:2016-05-17 14:35:44

标签: android android-volley http-status-code-204

当我向我的api api请求返回204 - No Content时。但凌空无法识别并给出TimeOutError。

我该如何处理?

1 个答案:

答案 0 :(得分: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类型的技术相同。