说一个使用okhttp的理由

当时公司为了让接入网关变的简单,于是就开发了一个client,然后给各个服务去使用。

有一次发送请求的时候,发现报timeout了,但实际上业务已经执行成功了。于是就去追代码,发现使用的尽然是hutool包的工具,那个真是糊涂呀

看代码发现没有指定timeout的参数就使用了默认参数 -1

image

因为使用jdk的URLConnection

hutool用的是JDK自带的URLConnection,这个是可以指定参数的。如果不指定参数,对于那些调用较为耗时的请求就会一直等待。
image

hutool调用存在的问题

基本要求

  1. 超时时间不设置,如果突然网络出现问题,就会一直卡在这。没有超时控制不行。
  2. 每次请求都建立连接,请求完成以后销毁连接。建立连接是很消耗资源的。
    合理的要求
  3. 连接复用,要有连接池吧
  4. 请求拦截器中统一做点功能是可以的吧
  5. 要是还能异步就完美了

你需要的okhttp都有

https://square.github.io/okhttp/features/connections/

posted @ 2024-12-18 14:29  Eular  阅读(97)  评论(0编辑  收藏  举报