SpringBoot Java后端實(shí)現(xiàn)okhttp3超時(shí)設(shè)置的方法實(shí)例
前言
okhttp是一個(gè)處理網(wǎng)絡(luò)請(qǐng)求的開源項(xiàng)目,是安卓端最火熱的輕量級(jí)框架,由移動(dòng)支付Square公司開發(fā)。OkHttp 是一個(gè)默認(rèn)高效的 HTTP 客戶端。OkHttp3是Java和Android都能用,Android還有一個(gè)著名網(wǎng)絡(luò)庫(kù)叫Volley,那個(gè)只有Android能用。
okttp3的github官方地址是:官方地址
- HTTP/2 支持允許對(duì)同一主機(jī)的所有請(qǐng)求共享一個(gè)套接字。
- 連接池減少了請(qǐng)求延遲(如果 HTTP/2 不可用)。
- 透明 GZIP 可縮小下載大小。
- 響應(yīng)緩存完全避免網(wǎng)絡(luò)重復(fù)請(qǐng)求。
OkHttp在網(wǎng)絡(luò)出現(xiàn)問題時(shí)堅(jiān)持:它會(huì)從常見的連接問題中默默恢復(fù)。如果您的服務(wù)有多個(gè) IP 地址,如果第一次連接失敗,OkHttp將嘗試備用地址。這對(duì)于在冗余數(shù)據(jù)中心托管的 IPv4+IPv6 和服務(wù)是必需的。OkHttp 支持現(xiàn)代 TLS 功能(TLS1.3、ALPN、證書鎖定)。它可以配置為回退以實(shí)現(xiàn)廣泛的連接。
使用 OkHttp 很容易。它的請(qǐng)求/響應(yīng) API 設(shè)計(jì)有流暢的構(gòu)建器和不變性。它支持同步阻塞調(diào)用和帶有回調(diào)的異步調(diào)用。
導(dǎ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方法簡(jiǎn)介
一共可以設(shè)置5個(gè)超時(shí)時(shí)間分別如下:關(guān)于OkHttp的超時(shí)時(shí)間
OkHttpClient client = new OkHttpClient.Builder() .connectTimeout(30, TimeUnit.SECONDS)//連接超時(shí)(單位:秒) .callTimeout(120, TimeUnit.SECONDS)//整個(gè)流程耗費(fèi)的超時(shí)時(shí)間(單位:秒)--很少人使用 .pingInterval(5, TimeUnit.SECONDS)//websocket輪訓(xùn)間隔(單位:秒) .readTimeout(60, TimeUnit.SECONDS)//讀取超時(shí)(單位:秒) .writeTimeout(60, TimeUnit.SECONDS)//寫入超時(shí)(單位:秒) .build();
api | 描述 | 生效機(jī)制 |
---|---|---|
callTimeout() | 整個(gè)流程耗費(fèi)的超時(shí)時(shí)間 | AsyncTimeout + WatchDog實(shí)現(xiàn) |
connectTimeout() | 三次握手 + SSL建立耗時(shí) | socket.connect(address, connectTimeout) |
readTimeout() | source讀取耗時(shí)\rawSocket讀取耗時(shí) | source.timeout(readTimeout)AsyncTimeout + WatchDog實(shí)現(xiàn)\rawSocket.setSoTimeout(readTimeout) |
writeTimeout() | sink寫入耗時(shí) | sink.timeout(writeTimeout)AsyncTimeout + WatchDog實(shí)現(xiàn) |
pingInterval() | websocket輪訓(xùn)間隔(單位:秒) | 這個(gè)值只有http2和webSocket中有使用 |
兩種版本超時(shí)設(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后端實(shí)現(xiàn)okhttp3超時(shí)設(shè)置的文章就介紹到這了,更多相關(guān)Java實(shí)現(xiàn)okhttp3超時(shí)設(shè)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Minio與SpringBoot使用okhttp3問題解決
- 基于springboot的RestTemplate、okhttp和HttpClient對(duì)比分析
- Android使用OKhttp3實(shí)現(xiàn)登錄注冊(cè)功能+springboot搭建后端的詳細(xì)過程
- Android的簡(jiǎn)單前后端交互(okHttp+springboot+mysql)
- SpringBoot 配置 okhttp3的操作
- 使用SpringBoot+OkHttp+fastjson實(shí)現(xiàn)Github的OAuth第三方登錄
- SpringBoot中OKHttp和壓縮文件的使用實(shí)戰(zhàn)教程
相關(guān)文章
RestTemplate 401 獲取錯(cuò)誤信息的處理方案
這篇文章主要介紹了RestTemplate 401 獲取錯(cuò)誤信息的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08SpringBoot集成Sharding-JDBC實(shí)現(xiàn)分庫(kù)分表方式
這篇文章主要介紹了SpringBoot集成Sharding-JDBC實(shí)現(xiàn)分庫(kù)分表方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Springboot啟用多個(gè)監(jiān)聽端口代碼實(shí)例
這篇文章主要介紹了Springboot啟用多個(gè)監(jiān)聽端口代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06redis之基于SpringBoot實(shí)現(xiàn)Redis stream實(shí)時(shí)流事件處理方式
這篇文章主要介紹了redis之基于SpringBoot實(shí)現(xiàn)Redis stream實(shí)時(shí)流事件處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06SSM框架使用poi導(dǎo)入導(dǎo)出Excel的詳細(xì)方法
這篇文章主要介紹了SSM框架使用poi導(dǎo)入導(dǎo)出Excel,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03使用spring的restTemplate注意點(diǎn)
這篇文章主要介紹了使用spring的restTemplate注意點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10一篇文章告訴你如何在Java數(shù)組中插入一個(gè)字符
本篇文章主要介紹了Java數(shù)組中插入一個(gè)字符的相關(guān)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-10-10Java NIO.2 使用Path接口來監(jiān)聽文件、文件夾變化
Java7對(duì)NIO進(jìn)行了大的改進(jìn),新增了許多功能,接下來通過本文給大家介紹Java NIO.2 使用Path接口來監(jiān)聽文件、文件夾變化 ,需要的朋友可以參考下2019-05-05