本地使用okhttp3发送请求,最多只能发5个/64个请求的限制问题


一丶问题

我个人的需求及业务场景描述起来比较麻烦,参考价值不高,不多赘述。

问题就是本地发送请求数量分别达到5个,64个的时候,后续的请求全部超时失败。

二丶原因

经过公司各位大佬的协助,最后定位问题:
在这里插入图片描述
在okhttp3中,Dispatcher对象定义了两个变量:
maxRequest=64
maxRequestPerHost=5
看到这里懂的都懂~~

这里去简单查了一下
maxRequestPerHost是对单个IP+端口的限制
maxRequest这个就是所有总数的最大上限
(个人理解~~建议自行百度)

三、解决方案

同样也是发现问题的开发大佬,给我解决了这个问题,致谢!

方案:创建一个自己的Dispatcher对象,不使用默认的Dispatcher,这样就可以自己设定maxRequestPerHostmaxRequest的上限值。

static Dispatcher dispatcher = new Dispatcher();
   static {
       //自定义上限
       dispatcher.setMaxRequests(3000000);
       //自定义上限
       dispatcher.setMaxRequestsPerHost(1000000);
   }
   static OkHttpClient client = new OkHttpClient.Builder().dispatcher(dispatcher).build();

我的okhttp3版本:

<dependency>
	<groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.14.9</version>
</dependency>

我很菜,希望不要误导你的思路。

转发请附带原文链接~~

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值