OkHttp概述

目錄

 

1.OkHttp是什麼?

2.Get方式請求URL

3.Post方式提交數據到服務器

4.注意事項

5.引用OkHttp庫

6.MockWebServer


1.OkHttp是什麼?

HTTP是現代應用網絡的方式請求協議。這是我們交換數據和媒體的方式。高效地執行HTTP可以使您的工作負載更快,並節省帶寬。

OkHttp是一個默認高效的HTTP客戶端:

1)HTTP/2支持允許對同一主機的所有請求共享一個套接字。

2)連接池減少了請求延遲(如果HTTP/2不可用)。

3)透明的GZIP壓縮了下載文件的大小。

4)響應緩存完全避免了網絡中的重複請求。

當網絡出現問題時,OkHttp會堅持下來:它會從常見的連接問題中悄悄地恢復過來。如果您的服務有多個IP地址,如果第一個連接失敗,OkHttp將嘗試備用地址。這對於IPv4+IPv6和託管在冗餘數據中心中的服務是必要的。OkHttp支持現代TLS特性(TLS 1.3、ALPN、證書固定)。可以將其配置爲回退以實現廣泛的連接。

使用OkHttp很容易。它的請求/響應API是用鏈式構建器和不變性設計的。它同時支持同步阻塞調用和帶回調的異步調用。

2.Get方式請求URL

這個程序請求一個URL和以字符串的格式打印它的響應內容:

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
  Request request = new Request.Builder()
      .url(url)
      .build();

  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

3.Post方式提交數據到服務器

public static final MediaType JSON
    = MediaType.get("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(json, JSON);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

4.注意事項

OkHttp適用於Android 5.0+ (API級別21+)和Java 8+。

OkHttp依賴於Okio的高性能I/O和Kotlin標準庫。兩者都是具有強大向後兼容性的小型庫。

我們強烈建議您隨時更新OkHttp。與自動更新web瀏覽器一樣,與HTTPS客戶機保持同步是防範潛在安全問題的重要手段。我們跟蹤動態TLS生態系統,並調整OkHttp以改進連接和安全性。

OkHttp使用您的平臺的內置TLS實現。在Java平臺上,OkHttp還支持Conscrypt(加密),它將BoringSSL與Java集成在一起。OkHttp將使用,如果它是第一個安全提供商:

Security.insertProviderAt(Conscrypt.newProvider(), 1);

OkHttp 3.12.x branch支持Android 2.3+ (API level 9+)和Java 7+。這些平臺缺乏對TLS 1.2的支持,不應該使用。但是由於升級是困難的,我們將備份關鍵補丁到3.12.x分部到2020年12月31日。

5.引用OkHttp庫

implementation("com.squareup.okhttp3:okhttp:4.4.0")

6.MockWebServer

OkHttp包含了一個測試HTTP,HTTPS和HTTP/2客戶端;

testImplementation("com.squareup.okhttp3:mockwebserver:4.4.0")

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章