当网络速度太慢时,Android凌空获取错误响应

时间:2017-07-20 15:28:13

标签: android android-studio android-volley

嗨,即使请求已成功发送到服务器,网络速度太快,我也会收到请求的错误响应?有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

将值设置为响应时间,如

  stringRequest.setRetryPolicy(new RetryPolicy() {
        @Override
        public int getCurrentTimeout() {
            // Here goes the new timeout 3 minutes
            return 3*60*1000;
        }

        @Override
        public int getCurrentRetryCount() {
            // The max number of attempts
            return 5;
        }

        @Override
        public void retry(VolleyError error) throws VolleyError {

        }
    });

你应该在两行之前使用上面的时间

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);

答案 1 :(得分:0)

如果网络速度慢,会产生误导性结果,Volley会对同一个API进行多次调用。要避免这种情况,请在向排球队列添加请求之前添加setRetryPolicy标志。

JsonObjectRequest jsonObjReq = new JsonObjectRequest(………….); 
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(0,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT.BACKOFF_MULT)); 
SingletonClass.getInstance.addToRequestQueue(jsonObjReq);

答案 2 :(得分:0)

  

试试这段代码,它让api等待一些api响应   特定时间段(由您提供)

// time provided to wait for api response
     jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
                    10000,
                    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

            // Adding request to request queue
            AppController.getInstance().addToRequestQueue(jsonObjReq, cancel_change_api);
        }