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")?
?
?
?
?
?
?
?
?
?
?
?
?
總結
- 上一篇: 您的高品质生活还差一个不卡顿的网络
- 下一篇: 闭环思维深刻认识