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

 更新时间:2021年10月13日 12:06:15   作者:菜菜bu菜  
Okhttp的使用没有httpClient广泛,网上关于Okhttp设置代理的方法很少,下面这篇文章主要给大家介绍了关于SpringBoot Java后端实现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)

总结

到此这篇关于SpringBoot Java后端实现okhttp3超时设置的文章就介绍到这了,更多相关Java实现okhttp3超时设置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java常用命令汇总

    Java常用命令汇总

    这篇文章主要介绍了Java常用命令汇总,小编觉得挺不错的,这里给大家分享下,供需要的朋友参考。
    2017-10-10
  • Spring cache源码深度解析

    Spring cache源码深度解析

    缓存用于提升系统的性能,特别适用于一些对资源需求比较高的操作,下面这篇文章主要给大家介绍了关于Spring cache源码的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • Java设计模式:组合模式

    Java设计模式:组合模式

    这篇文章主要介绍了快速理解Java设计模式中的组合模式,具有一定参考价值,需要的朋友可以了解下,希望能够给你带来帮助
    2021-09-09
  • Java中常用的日期类图文详解

    Java中常用的日期类图文详解

    Java提供了Date类来处理日期、时间(此处的Date是指java.util包下的Date类,而不是java.sql包下的Date类),Date对象既包含日期,也包含时间,下面这篇文章主要给大家介绍了关于Java中常用的日期类的相关资料,需要的朋友可以参考下
    2022-11-11
  • Java实现高效随机数算法的示例代码

    Java实现高效随机数算法的示例代码

    这篇文章主要介绍了Java实现高效随机数算法的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Spring MVC的项目准备和连接建立方法

    Spring MVC的项目准备和连接建立方法

    SpringWebMVC是基于Servlet API的Web框架,属于Spring框架的一部分,主要用于简化Web应用程序的开发,SpringMVC通过控制器接收请求,使用模型处理数据,并通过视图展示结果,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • SpringCloud 客户端Ribbon负载均衡的实现方法

    SpringCloud 客户端Ribbon负载均衡的实现方法

    Ribbon 是 Netflix 提供的一个基于 Http 和 TCP 的客户端负载均衡工具,且已集成在 Eureka 依赖中,这篇文章主要介绍了SpringCloud 客户端Ribbon负载均衡的实现方法,需要的朋友可以参考下
    2022-06-06
  • Java控制流程示例代码详解

    Java控制流程示例代码详解

    这篇文章主要介绍了Java控制流程,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • String字符串拼接方法concat和+的效率对比

    String字符串拼接方法concat和+的效率对比

    这篇文章主要介绍了String字符串拼接方法concat和+的效率对比,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java使用kafka发送和生产消息的示例

    Java使用kafka发送和生产消息的示例

    本篇文章主要介绍了Java使用kafka发送和生产消息的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论