SpringBoot Java后端实现okhttp3超时设置

云惠网小编 2021年10月13日19:21:26
评论
1791字阅读5分58秒
摘要

SpringBoot Java后端实现okhttp3超时设置前言导入okhttp3方法简介两种版本超时设置用法

广告也精彩

导入

前言

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

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中有使用

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

以前的版本设置client

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

两种版本超时设置用法

okhttp3要设置client.Builder

SpringBoot Java后端实现okhttp3超时设置

  • 前言
  • 导入
  • okhttp3方法简介
  • 两种版本超时设置用法

在这里插入图片描述

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

maven


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

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

  • HTTP/2 支持允许对同一主机的所有请求共享一个套接字。
  • 连接池减少了请求延迟(如果 HTTP/2 不可用)。
  • 透明 GZIP 可缩小下载大小。
  • 响应缓存完全避免网络重复请求。
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();

okhttp3方法简介

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

gradle方式

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

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

本文转自 https://blog.csdn.net/weixin_46048515/article/details/120032790

腾讯云618
云惠网小编
[java篇]一口气搞定异常处理 java

[java篇]一口气搞定异常处理

前言:博主在以前的博客中曾经也提起了异常,比如[java篇]多态,接口中在实现clone接口时,就用到了抛出异常,今天就给大家详细的介绍一下关于异常的一些知识。前期文章:1.[ja...
腾讯云618

发表评论