Android截击超时无法正常工作
我使用的是安卓截击,当我发出请求时,会出现超时错误。我使用Android截击超时无法正常工作,android,android-volley,Android,Android Volley,我使用的是安卓截击,当我发出请求时,会出现超时错误。我使用 request.setRetryPolicy(new DefaultRetryPolicy( 5000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 这个实现的问题是我得到了一个request.finish:7123
request.setRetryPolicy(new DefaultRetryPolicy(
5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
这个实现的问题是我得到了一个request.finish:7123ms的结果。我本该出去走走的。关于android超时,我有什么不明白的吗?如何将超时精确设置为5000ms
编辑:
我发现在每次重试中,请求都在增加时间。我想这应该是我的问题,但是
如果我将我的请求编辑为
request.setRetryPolicy(new DefaultRetryPolicy(
5000, 0,0));
根据安卓截击默认重试策略
@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;
}`
@覆盖
公共无效重试(截击错误)引发截击错误{
mcurrentrycount++;
mCurrentTimeoutMs+=(mCurrentTimeoutMs*MBackoff乘数);
如果(!hasAttemptRemaining()){
投掷误差;
}
}
/**
*如果此策略仍有尝试,则返回true,否则返回false。
*/
受保护的布尔值hasAttemptRemaining(){
return mcurrentrycountVolley将所有请求的默认套接字和连接超时设置为5秒
request.setRetryPolicy(new DefaultRetryPolicy(
0,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
检查你的代码
request.setRetryPolicy(new DefaultRetryPolicy(
5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
您将timout设置为5000ms,并将重试次数设置为DefaultRetryPolicy.DEFAULT_MAX_retries,其值为1,这意味着。第一个请求的请求超时为5秒,然后重试请求的请求超时为5秒。两个请求之后,在您的情况下,这意味着10秒。请求超时将发生。因此,在我的示例中,我的超时为5000+5000=10000?我应该在哪里计算lsetRequestPolicy()?
我面临类似的超时问题。你能解决这个问题吗?我也有同样的问题。我想也许RetryPolicy只适用于重试,而不适用于初始请求,也许?这对我不起作用。我已将超时设置为1000ms(1秒)最大重试次数为0。但是初始请求需要45秒才能返回错误消息。有什么提示吗?