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超時設置內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: