你不知道的volley的超时时间和重连次数

一、代码如下:

myRequest.setRetryPolicy(new DefaultRetryPolicy(

                MY_SOCKET_TIMEOUT_MS, 

                DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 

                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

注:一共有3个参数

MY_SOCKET_TIMEOUT_MS,默认值2500, 指定Socket在每次尝试重连的超时时间单位为ms

DefaultRetryPolicy.DEFAULT_MAX_RETRIES 重连次数,默认值为1 

DefaultRetryPolicy.DEFAULT_BACKOFF_MULT 默认值为1f,一个乘法器,用于为每次重试尝试确定socket的指数时间设置

所以volley默认的设置的超时时间是5s。

二、具体超时时间的算法

计算公式如下:

Timeout – 3000 secs, Num of Attempt – 2, Back Off Multiplier – 2 

第一次链接:

time = time + (time * Back Off Multiplier ); 

time = 3000 + 6000 = 9000 

Socket Timeout = time; 

第一次重连:

time = time + (time * Back Off Multiplier ); 

time = 9000 + 18000 = 27000 

Socket Timeout = time; 

所以请求socket超时时间为27秒,在27秒后会抛出TimeoutError异常。

                        喜欢 就关注吧,欢迎投稿!

640?wx_fmt=jpeg

本网站文章均为原创内容,并可随意转载,但请标明本文链接
如有任何疑问可在文章底部留言。为了防止恶意评论,本博客现已开启留言审核功能。但是博主会在后台第一时间看到您的留言,并会在第一时间对您的留言进行回复!欢迎交流!
本文链接: https://leetcode.jp/你不知道的volley的超时时间和重连次数/

此条目发表在Android分类目录。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。