【问题标题】:Android volley timeout not properly workingAndroid 凌空超时无法正常工作
【发布时间】:2014-11-30 14:57:04
【问题描述】:

我正在使用 android volley,当我发出请求时出现超时错误。我使用

增加了超时
request.setRetryPolicy(new DefaultRetryPolicy(
                5000, 
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

这个实现的问题是我得到了 request.finish: 7123ms 的结果。我应该采取 timeoutError 。我对android超时有什么不了解吗?如何将超时精确设置为 5000 毫秒?

编辑: 我在prasadthangavel.blogspot 发现,在每次重试时,请求都会增加时间。我认为这应该是我的问题,但是 如果我将我的请求编辑为

request.setRetryPolicy(new DefaultRetryPolicy(
                5000, 0,0));  

根据android volley默认重试策略

@Override
    public void retry(VolleyError error) throws VolleyError {
        mCurrentRetryCount++;
        mCurrentTimeoutMs += (mCurrentTimeoutMs * mBackoffMultiplier);
        if (!hasAttemptRemaining()) {
            throw error;
        }
    }
    /**
     * Returns true if this policy has attempts remaining, false otherwise.
     */
    protected boolean hasAttemptRemaining() {
        return mCurrentRetryCount <= mMaxNumRetries;
    }`

不会进行其他重试。但这也没有解决我的问题。我有一些请求正在使用 request.finish 7200ms 执行。为什么每次连接时间或读取时间大于 5000ms 时都没有抛出异常?

【问题讨论】:

  • 我应该在哪里打电话setRequestPolicy()? 我面临着类似的超时问题。
  • 你能解决这个问题吗?我也有同样的问题。我在想也许 RetryPolicy 仅适用于重试而不适用于初始请求,也许?

标签: android android-volley


【解决方案1】:

Volley 将所有请求的默认 Socket & ConnectionTImeout 设置为 5 秒。

request.setRetryPolicy(new DefaultRetryPolicy(
            0, 
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

【讨论】:

  • 所以在我的例子中我的超时时间是 5000 + 5000 = 10000?
【解决方案2】:

检查您的代码

request.setRetryPolicy(new DefaultRetryPolicy(
            5000, 
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

你将 timout 设置为 5000ms,并且 no of retries 设置为 DefaultRetryPolicy.DEFAULT_MAX_RETRIES,其值为 1,这意味着。第一次请求的请求超时为 5 秒,重试请求为 5 秒。在两次请求之后,在您的情况下意味着 10 秒。将发生请求超时。

【讨论】:

  • 这对我不起作用。我已将 TIMEOUT_MS 设置为 1000 毫秒(1 秒),并将 MAX_RETRIES 设置为 0。但初始请求需要 45 秒才能返回一条错误消息。有什么提示吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多