SpringBoot Java后端實現(xiàn)okhttp3超時設(shè)置的方法實例
前言
okhttp是一個處理網(wǎng)絡(luò)請求的開源項目,是安卓端最火熱的輕量級框架,由移動支付Square公司開發(fā)。OkHttp 是一個默認高效的 HTTP 客戶端。OkHttp3是Java和Android都能用,Android還有一個著名網(wǎng)絡(luò)庫叫Volley,那個只有Android能用。
okttp3的github官方地址是:官方地址
- HTTP/2 支持允許對同一主機的所有請求共享一個套接字。
- 連接池減少了請求延遲(如果 HTTP/2 不可用)。
- 透明 GZIP 可縮小下載大小。
- 響應(yīng)緩存完全避免網(wǎng)絡(luò)重復請求。
OkHttp在網(wǎng)絡(luò)出現(xiàn)問題時堅持:它會從常見的連接問題中默默恢復。如果您的服務(wù)有多個 IP 地址,如果第一次連接失敗,OkHttp將嘗試備用地址。這對于在冗余數(shù)據(jù)中心托管的 IPv4+IPv6 和服務(wù)是必需的。OkHttp 支持現(xiàn)代 TLS 功能(TLS1.3、ALPN、證書鎖定)。它可以配置為回退以實現(xiàn)廣泛的連接。
使用 OkHttp 很容易。它的請求/響應(yīng) API 設(shè)計有流暢的構(gòu)建器和不變性。它支持同步阻塞調(diào)用和帶有回調(diào)的異步調(diào)用。
導入
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方法簡介
一共可以設(shè)置5個超時時間分別如下:關(guān)于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實現(xiàn) |
| connectTimeout() | 三次握手 + SSL建立耗時 | socket.connect(address, connectTimeout) |
| readTimeout() | source讀取耗時\rawSocket讀取耗時 | source.timeout(readTimeout)AsyncTimeout + WatchDog實現(xiàn)\rawSocket.setSoTimeout(readTimeout) |
| writeTimeout() | sink寫入耗時 | sink.timeout(writeTimeout)AsyncTimeout + WatchDog實現(xiàn) |
| pingInterval() | websocket輪訓間隔(單位:秒) | 這個值只有http2和webSocket中有使用 |
兩種版本超時設(shè)置用法
okhttp3要設(shè)置client.Builder
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(15, TimeUnit.SECONDS)
.readTimeout(15,TimeUnit.SECONDS)
.writeTimeout(15,TimeUnit.SECONDS)
.build();
以前的版本設(shè)置client
client .connectTimeout(15, TimeUnit.SECONDS)
.readTimeout(15,TimeUnit.SECONDS)
.writeTimeout(15,TimeUnit.SECONDS)
總結(jié)
到此這篇關(guān)于SpringBoot Java后端實現(xiàn)okhttp3超時設(shè)置的文章就介紹到這了,更多相關(guān)Java實現(xiàn)okhttp3超時設(shè)置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring運行環(huán)境Environment的解析
本文主要介紹了Spring運行環(huán)境Environment的解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-08-08
springboot 運行 jar 包讀取外部配置文件的問題
這篇文章主要介紹了springboot 運行 jar 包讀取外部配置文件,本文主要描述linux系統(tǒng)執(zhí)行jar包讀取jar包同級目錄的外部配置文件,主要分為兩種方法,每種方法通過實例代碼介紹的非常詳細,需要的朋友可以參考下2021-07-07
spring?boot?使用Mybatis-plus查詢方法解析
這篇文章主要介紹了spring?boot?使用Mybatis-plus查詢方法解析,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09

