1. 程式人生 > >安卓網路框架比較

安卓網路框架比較

引言

目前網路請求框架也比較多,本文針對封裝的比較完善的Volley,Okhttp,Retrofit研究比較了,才知道選擇哪個最適合。基礎HttpUrlConnection,android-async-http,httpclient(高版本廢棄),xUtils3(作用廣泛而不精),不討論。

一.Volley

來源: Volley詳解

google推出的非同步網路請求框架和圖片載入框架。特別適合資料量小,通訊頻繁的網路操作。android絕大多數都屬於這種型別。

volley.png


1.Volley主要特點
1. 擴充套件性強
基於介面設計。
2. 一定程度上符合http規範。
返回包括ResponseCode 的處理,請求頭的處理,快取機制的支援。
3. 重試以及優先順序的定義。
4. 2.3以上基於HttpUrlconnection。
2.3以下是Httpclient(沒有這號機子了吧)
5. 提供簡單的圖片載入工具。
2.Volley的使用

 

基本的使用方法
直接返回Object的話,用Gson/FastJson與Volley的結合

3.Volley問題收錄:

Volley的request預設回撥到主執行緒中,如果有需求是要載入到sqlite等等仍需要在子執行緒中進行的操作 解決方案

二.Retrofit

Retrofit 基於註解,提供JSON to POJO(Plain Ordinary Java Object,簡單Java物件),POJO to JSON,網路請求(POST,GET,PUT,DELETE等)封裝。

三.Okhttp 口碑相當好啊,

這個onResponse執行的執行緒並不是UI執行緒。

OKHttp原始碼位置
泡網的原始碼分析

Interceptor 雲端響應攔截器, 設定快取策略
1)應用攔截器(ApplicationInterceptors)
主要用於檢視請求資訊及返回資訊,如連結地址、頭資訊、引數資訊等
2)網路攔截器(Network Interceptors)
可以新增、刪除或替換請求頭資訊,還可以改變的請求攜帶的實體。

快取的使用方式

 noCache :不使用快取,全部走網路
 noStore : 不使用快取,也不儲存快取
 onlyIfCached : 只使用快取
 maxAge :設定最大失效時間,失效則不使用
 maxStale :設定最大失效時間,失效則不使用
 minFresh :設定最小有效時間,失效則不使用
 FORCE_NETWORK : 強制走網路
 FORCE_CACHE :強制走快取

一般的get、post、基於http檔案上傳、檔案下載、載入圖片、支援請求回撥、直接返回物件、物件集合、支援session的保持。
會從很多常用的連線問題中自動恢復。SPDY策略,即如果您的伺服器配置了多個IP地址,當第一個IP連線失敗的時候,OkHttp會自動嘗試下一個IP。OkHttp還處理了代理伺服器問題和SSL握手失敗問題。