IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> SpringBoot Java后端实现okhttp3超时设置 -> 正文阅读

[移动开发]SpringBoot Java后端实现okhttp3超时设置

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)

在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:54:32  更:2021-10-15 11:56:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:12:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码