square 開源的 http 工具類
項目地址:https://github.com/square/okhttp
文檔介紹:http://square.github.io/okhttp/
介紹
HTTP/2 和 SPDY 支持允許所有用到同一個host的請求共享一個socket。
連接池減少請求延時 (如果 SPDY 不可用).
透明的GZIP支持,減少下載大小。
緩存Response以減少網絡去做完全重復的請求。
OkHttp在網絡有問題的時候優秀表現:
- 它會靜默從常見的連接問題中恢復。
- 如果你的服有多個IP地址對應,OkHttp會在首次連接失敗的時候嘗試其他地址。
- OkHttp使用現代的TLS features (SNI, ALPN))? (安全傳輸層協議)來初始化連接, 并在握手失敗的時候倒回到TLS 1.0。
OkHttp 2.0的API設計為流式builders和immutability,同時支持同步阻塞調用和異步回調。
使用 OkHttp 無需重寫您程序中的網絡代碼。OkHttp實現了幾乎和java.net.HttpURLConnection一樣的API。如果你使用了 Apache HttpClient,則OkHttp也提供了一個對應的okhttp-apache 模塊。
OkHttp支持Android 2.3和以上,對Java要求至少1.7。
對了,OkHttp還用了Okio來做快速I/O和可調整大小的buffer。
SPDY
SPDY協議是Google提出的基于傳輸控制協議(TCP)的應用層協議,通過壓縮、多路復用和優先級來縮短加載時間。該協議是一種更加快速的內容傳輸協議。
TSL:
安全傳輸層協議(TLS)用于在兩個通信應用程序之間提供保密性和數據完整性。該協議由兩層組成: TLS 記錄協議(TLS Record)和 TLS?握手協議(TLS Handshake)。
特點:
(1) 支持 SPDY(http://zh.wikipedia.org/wiki/SPDY)協議。SPDY 協議是 Google 開發的基于傳輸控制協議的應用層協議,通過壓縮,多路復用(一個 TCP 鏈接傳送網頁和圖片等資源)和優先級來縮短加載時間。
(2) 如果 SPDY 不可用,利用連接池減少請求延遲
(3) Gzip 壓縮
(4) Response 緩存減少不必要的請求