SpringBoot Java后端实现okhttp3超时设置的方法实例

作者:菜菜bu菜 时间:2022-11-06 04:56:03 

目录
  • 前言

  • 导入

  • okhttp3方法简介

  • 两种版本超时设置用法

  • 总结

前言

okhttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司开发。OkHttp 是一个默认高效的 HTTP 客户端。OkHttp3是Java和Android都能用,Android还有一个著名网络库叫Volley,那个只有Android能用。

okttp3的github官方地址是:官方地址

  • HTTP/2 支持允许对同一主机的所有请求共享一个套接字。

  • 连接池减少了请求延迟(如果 HTTP/2 不可用)。

  • 透明 GZIP 可缩小下载大小。

  • 响应缓存完全避免网络重复请求。

OkHttp在网络出现问题时坚持:它会从常见的连接问题中默默恢复。如果您的服务有多个 IP 地址,如果第一次连接失败,OkHttp将尝试备用地址。这对于在冗余数据中心托管的 IPv4+IPv6 和服务是必需的。OkHttp 支持现代 TLS 功能(TLS1.3、ALPN、证书锁定)。它可以配置为回退以实现广泛的连接。

使用 OkHttp 很容易。它的请求/响应 API 设计有流畅的构建器和不变性。它支持同步阻塞调用和带有回调的异步调用。

导入

maven


<!-- ok http -->
       <dependency>
           <groupId>com.squareup.okhttp3</groupId>
           <artifactId>okhttp</artifactId>
           <version>4.2.2</version>
       </dependency>

gradle方式


compile 'com.squareup.okhttp3:okhttp:4.2.2'

okhttp3方法简介

一共可以设置5个超时时间分别如下:关于OkHttp的超时时间


OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)//连接超时(单位:秒)
.callTimeout(120, TimeUnit.SECONDS)//整个流程耗费的超时时间(单位:秒)--很少人使用
.pingInterval(5, TimeUnit.SECONDS)//websocket轮训间隔(单位:秒)
.readTimeout(60, TimeUnit.SECONDS)//读取超时(单位:秒)
.writeTimeout(60, TimeUnit.SECONDS)//写入超时(单位:秒)
.build();
api描述生效机制
callTimeout()整个流程耗费的超时时间AsyncTimeout + WatchDog实现
connectTimeout()三次握手 + SSL建立耗时socket.connect(address, connectTimeout)
readTimeout()source读取耗时\rawSocket读取耗时source.timeout(readTimeout)AsyncTimeout + WatchDog实现\rawSocket.setSoTimeout(readTimeout)
writeTimeout()sink写入耗时sink.timeout(writeTimeout)AsyncTimeout + WatchDog实现
pingInterval()websocket轮训间隔(单位:秒)这个值只有http2和webSocket中有使用

两种版本超时设置用法

okhttp3要设置client.Builder


OkHttpClient client = new OkHttpClient.Builder()
        .connectTimeout(15, TimeUnit.SECONDS)
        .readTimeout(15,TimeUnit.SECONDS)
        .writeTimeout(15,TimeUnit.SECONDS)
        .build();

以前的版本设置client


client .connectTimeout(15, TimeUnit.SECONDS)
         .readTimeout(15,TimeUnit.SECONDS)
         .writeTimeout(15,TimeUnit.SECONDS)

来源:https://blog.csdn.net/weixin_46048515/article/details/120032790

标签:okhttp3,超时,java
0
投稿

猜你喜欢

  • 重温C# clr 笔记总结

    2023-06-22 02:24:30
  • Android 基于agora 开发视频会议的代码

    2021-11-30 02:53:04
  • 浅谈JavaWeb中的web.xml配置部署描述符文件

    2023-11-12 00:14:13
  • 四种引用类型在JAVA Springboot中的使用详解

    2023-11-24 03:34:38
  • c# 通过经纬度查询 具体的地址和区域名称

    2023-08-15 11:41:53
  • android TextView实现跑马灯效果

    2023-07-27 16:35:31
  • Java集合继承体系详解

    2023-12-03 00:22:13
  • javaweb Servlet开发总结(一)

    2023-04-08 22:52:32
  • Java中JSON处理工具类使用详解

    2023-09-19 17:59:08
  • Java流程控制之循环结构for,增强for循环

    2023-11-03 10:45:20
  • android Handler详细使用方法实例

    2022-11-29 01:35:12
  • android获取ibeacon列表的方法

    2023-01-18 00:57:54
  • java poi导入纯数字等格式问题及解决

    2023-04-14 08:50:30
  • Java增加自定义注解进行校验入参详解

    2023-01-05 13:34:25
  • 关于java.util.Random的实现原理详解

    2023-05-18 14:52:08
  • C#利用Task实现任务超时多任务一起执行的方法

    2023-07-04 20:03:38
  • Android实现关机后数据不会丢失问题

    2021-06-08 18:54:47
  • .NET程序员如何入门Spring Boot详解

    2022-04-18 08:04:05
  • Android模拟器对应的电脑快捷键说明

    2022-11-09 17:44:07
  • Java 重写时应当遵守的 11 条规则

    2023-02-10 18:58:06
  • asp之家 软件编程 m.aspxhome.com