網路請求框架對比

weixin_34019929發表於2016-03-08

HttpClient

高效穩定,但是維護成本高昂,故android 開發團隊不願意在維護該庫而是轉投更為輕便的HttpUrlConnection

HttpUrlConnection

在android 2.2及以下版本中HttpUrlConnection存在著一些bug,所以建議在android 2.3以後使用HttpUrlConnection,之前使用HttpClient。

特點

比較輕便,靈活,易於擴充套件

在3.0後以及4.0中都進行了改善,如對HTTPS的支援

在4.0中,還增加了對快取的支援

Volley

Volley可以說是把AsyncHttpClient和Universal-Image-Loader的優點集於了一身,既可以像AsyncHttpClient一樣非常簡單地進行HTTP通訊,也可以像Universal-Image-Loader一樣輕鬆載入網路上的圖片。除了簡單易用之外,Volley在效能方面也進行了大幅度的調整,它的設計目標就是非常適合去進行資料量不大,但通訊頻繁的網路操作,而對於大資料量的網路操作,比如說下載檔案等,Volley的表現就會非常糟糕
Volley提供了JsonObjectRequest  JsonArrayRequest  StringRequest  ImageRequest  NetworkImageView 等Request形式。

okHttp

okhttp 是一個 Java 的 HTTP+SPDY 客戶端開發包,同時也支援 Android。需要Android 2.3以上

特點

OKHttp是Android版Http客戶端。非常高效,支援SPDY、連線池、GZIP和 HTTP 快取。

預設情況下,OKHttp會自動處理常見的網路問題,像二次連線、SSL的握手問題。

如果你的應用程式中整合了OKHttp,Retrofit預設會使用OKHttp處理其他網路層請求。

從Android4.4開始HttpURLConnection的底層實現採用的是okHttp.

Retrofit

Retrofit支援同步和非同步兩種方式,在使用時,需要將請求地址轉換為介面,通過註解來指定請求方法,請求引數,請求頭,返回值等資訊。還是使用之前的person的那段json值,get請求到伺服器後從資料庫查詢資料,返回值為查詢到的資料,post請求向伺服器提交一條資料,返回值為提交的資料。

相關文章