在建立 OkHttp3 Client 时设置超时时间

这里写目录标题

    • 一. 前言
    • 二. 导入
      • maven
      • gradle
    • 三. 设置超时时间

一. 前言

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

OkHttp 是一个默认高效的 HTTP 客户端:

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

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

官方地址:https://square.github.io/okhttp

二. 导入

maven

      <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.6.0</version></dependency>

gradle

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

三. 设置超时时间

OkHttpClient 默认的 connectTimeout,readTimeout,writeTimeout 都是10秒,实际在应用体验上来说,有点短的。
项目中最好 connectTimeout = 10s,readTimeout= 60s,writeTimeout = 60s,如果涉及到下载上传,实际应该修改成更长的。

在创建 OkHttpClient 客户端时设置超时时间:

OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)//连接超时(单位:秒)
.readTimeout(60, TimeUnit.SECONDS)//读取超时(单位:秒)
.writeTimeout(60, TimeUnit.SECONDS)//写入超时(单位:秒)
.callTimeout(120, TimeUnit.SECONDS)//整个流程耗费的超时时间(单位:秒)--很少人使用
.pingInterval(5, TimeUnit.SECONDS)//websocket轮训间隔(单位:秒)
.build();

在这里插入图片描述
旧版本设置超时时间:

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

参考:
https://zhuanlan.zhihu.com/p/635599854
https://blog.csdn.net/weixin_46048515/article/details/120032790

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/205632.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端实现表格生成序号001、002、003自增

我们最终想要实现的效果如图&#xff0c;从后端获取数据之后&#xff0c;不使用data中的id&#xff0c;而是使用自己生成的按照顺序自增的序号id。 script <template><el-table :data"sticker" border style"width: 100%" id"stickerList&q…

前端js调取摄像头并实现拍照功能

前言 最近接到的一个需求十分有意思&#xff0c;设计整体实现了前端仿 微信扫一扫 的功能。整理了一下思路&#xff0c;做一个分享。 tips: 如果想要实现完整扫一扫的功能&#xff0c;你需要掌握一些前置知识&#xff0c;这次我们先讲如何实现拍照并且保存的功能。 一. windo…

如何清理mac的存储空间

MacBook用户往往会面临同一个问题&#xff1a;存储空间不足无法下载文件&#xff0c;或者内存不足运行大型软件卡顿的情况。影响电脑运行卡顿的原因之一是mac系统其他系统数据&#xff0c;大部分是系统隐藏的缓存文件、日志文件等。为了系统安全起见&#xff0c;默认为隐藏状态…

基于window10的远程桌面报错:要求的函数不受支持 的问题解决方法

基于window10的远程桌面报错&#xff1a;要求的函数不受支持 的问题解决方法 设置方法&#xff1a; 一、WINR 在框内输入gpedit.msc 二、依次打开 计算机配置----管理模板-----系统—凭据分配—加密数据库修正–改为以启用—易受攻击 第一步&#xff1a; 第二步&#xff1a;…

解决VSCode运行时自动保存问题【图文解析】

用VSCode写前端时老是自动保存&#xff0c;代码还没写完就开始 刷新页面 调用接口 出现报错之类的&#xff0c;很烦人&#xff0c;所以就写一篇修改VSCode自动保存文件的文章&#xff0c;以免自己忘记在哪设置。 同事总是用不自动保存&#xff0c;每次写完都要ctrls一下&#x…

80%测试员被骗,关于jmeter 的一个弥天大谎!

jmeter是目前大家都喜欢用的一款性能测试工具&#xff0c;因为它小巧、简单易上手&#xff0c;所以很多人都愿意用它来做接口测试或者性能测试&#xff0c;因此&#xff0c;在目前企业中&#xff0c;使用各个jmeter的版本都有&#xff0c;其中以jmeter3.x、4.x的应该居多。 但是…

Redis主从复制,哨兵和Cluster集群

主从复制&#xff1a; 主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份&#xff08;和同步&#xff09;&#xff0c;以及对于读操作的负载均衡和简单的故障恢复。 缺陷&#xff1a;故障恢复无法自动化…

HC32L110小华半导体SWD模式切换的问题

在将SWD配置为普通引脚并配置为输出后&#xff0c;如果需要重新配置为SWD&#xff0c;需要将其配置为输入才行&#xff0c;如下&#xff1a; Clk_SetFunc(ClkFuncSwdPinIOEn, TRUE); //配置SWD引脚为普通引脚模式 Gpio_InitIOExt(SWCLK_PORT, SWCLK_PIN, GpioDirOut, TRUE,…

一起学docker系列之六如何搭建私服版本的Docker镜像仓库

目录 前言1 下载并运行私服版本的Docker镜像仓库2 准备上传私服的Docker镜像3 为镜像打上符合私服规范的标签4 修改Docker守护进程的配置文件5 推送镜像到私服版本的Docker镜像仓库6 验证私服的镜像结语 前言 Docker是一种开源的容器技术&#xff0c;可以让开发者和运维人员快…

QML22、常规组件Page

Page是一个容器控件,可以方便地向页面添加页眉和页脚项。 title : string 此属性保存页面标题。 header : Item 此属性保存页眉项。标题项被定位到顶部,并调整大小为页面的宽度。缺省值为空。 注意:指定一个ToolBar, TabBar,或DialogButtonBox作为页眉会自动将各自的ToolBar…

Mysql 8.0主从复制模式安装(兼容Mysql 5.7)

Mysql V8.0.35安装 官网地址&#xff1a;MySQL :: Download MySQL Community Server 下载【Mysql 8.0.35】压缩包 解压压缩包&#xff0c;仅保留6个安装文件即可 mysql-community-client-8.0.31-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm my…

Vocoder,声码器详解——语音信号处理学习(十)

参考文献&#xff1a; [1] Vocoder (由助教許博竣同學講授)哔哩哔哩bilibili [2] Oord A, Dieleman S, Zen H, et al. Wavenet: A generative model for raw audio[J]. arXiv preprint arXiv:1609.03499, 2016. [3] https://deepmind.com/blog/article/wavenet-generative-mode…