2 回答

TA貢獻377條經驗 獲得超508個贊
Android系統提供了兩種HTTP通信類,HttpURLConnection和HttpClient。
盡管Google在大部分安卓版本中推薦使用HttpURLConnection,但是這個類相比HttpClient實在是太難用,太弱爆了。
OkHttp是一個相對成熟的解決方案,據說Android4.4的源碼中可以看到HttpURLConnection已經替換成OkHttp實現了。所以我們更有理由相信OkHttp的強大。
OkHttp 處理了很多網絡疑難雜癥:會從很多常用的連接問題中自動恢復。如果您的服務器配置了多個IP地址,當第一個IP連接失敗的時候,OkHttp會自動嘗試下一個IP。OkHttp還處理了代理服務器問題和SSL握手失敗問題。
使用 OkHttp 無需重寫您程序中的網絡代碼。OkHttp實現了幾乎和java.net.HttpURLConnection一樣的API。如果你用了?Apache?HttpClient,則OkHttp也提供了一個對應的okhttp-apache 模塊。
OkHttp 相較于其它的實現有以下的優點.
支持SPDY,允許連接同一主機的所有請求分享一個socket。 如果SPDY不可用,會使用連接池減少請求延遲。 使用GZIP壓縮下載內容,且壓縮操作對用戶是透明的。 利用響應緩存來避免重復的網絡請求。 當網絡出現問題的時候,OKHttp會依然有效,它將從常見的連接問題當中恢復。 如果你的服務端有多個IP地址,當第一個地址連接失敗時,OKHttp會嘗試連接其他的地址,這對IPV4和IPV6以及寄宿在多個數據中心的服務而言,是非常有必要的。
- 2 回答
- 1 關注
- 1468 瀏覽
添加回答
舉報