【问题标题】:Volley Change response timeout- Don't set duplicateVolley Change 响应超时 - 不要设置重复
【发布时间】:2017-04-28 02:59:38
【问题描述】:

我从互联网上搜索了很多设置凌空请求超时。我最终得到了重试策略的解决方案,但是在研究它时它没有设置超时,它设置了请求的重试时间,但我不想重试我的请求。我想增加凌空请求超时,以便较慢的网络可以访问数据,凌空超时设置为 5 秒,这意味着如果网络直到 5 秒才连接,它将抛出超时异常。如何更改从服务器获取响应的时间。

我的代码是

ProjectHistory.requestQueue = Volley.newRequestQueue(mContext);
    int socketTimeout = 30000;//30 seconds - change to what you want
    RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
    stringRequest.setRetryPolicy(policy);
    ProjectHistory.requestQueue.add(stringRequest);

我有两个问题--

(1) 是否会在 30 秒后重试请求?

(2)如何设置请求超时30秒,以便较慢的网络可以加载数据?

【问题讨论】:

标签: java android android-volley


【解决方案1】:

请查看this 线程以了解Volley 中的超时策略。

这里

request.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 48,
                0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 48,第一个参数本身就是表示超时。如果策略中提到重试,Volley 将等待给定的时间并且 id 没有得到响应然后重试。

注意:这里提到的超时是 2500ms * 48 = 120000ms = 2 分钟

谢谢。

【讨论】:

  • 但它会在慢速网络上 2 minitus 之前进入错误部分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多