【威哥說】網絡請求在我們自己的應用當中必不可少,之前我給大家分享過主流的網絡框架,也做了對比,因為有同學留言去面試被問到OkHttp和Volley請求有什么不同?下面我們就來看看它們之間的區別。
OkHttp
1.占用儲存空間
使用OkHttp需要 okio.jar (80k), okhttp.jar(330k)這2個jar包,總大小差不多400k,加上自己的封裝,差不多得410k。
2.功能介紹
Square 公司開源的 OkHttp 是一個專注于連接效率的 HTTP 客戶端。OkHttp 提供了對 HTTP/2 和 SPDY 的支持,并提供了連接池,GZIP 壓縮和 HTTP 響應緩存功能。
3.優點
支持http請求,https請求。
支持文件下載。
使用的是HttpURLConnection,不要擔心android版本的變換。(至少目前是都支持的)。
支持get,post請求。
基于Http的文件上傳。
加載圖片。
4.缺點
比如callback回來是在線程里面, 不能刷新UI,需要我們手動處理。
封裝比較麻煩。
Volley
1.占用儲存空間
使用Volley 需要Volley.jar(120k),加上自己的封裝最多140k。
2.功能介紹
Volley是Goole在2013年Google I/O大會上推出了一個新的網絡通信框架,它是開源的。Volley 的特點:特別適合數據量小,通信頻繁的網絡操作。
3.優點
非常適合進行數據量不大,但通信頻繁的網絡操作。
內部分裝了異步線程。
支持get,post網絡請求。
圖片下載。
可直接在主線程調用服務端并處理返回結果。
可以取消請求,容易擴展,面向接口編程。
4.缺點
對大文件下載 Volley的表現非常糟糕。
只支持http請求。
在BasicNetwork中判斷了statusCode(statusCode < 200 || statusCode > 299),如果符合條件直
接圖片加載,性能一般。
使用的是httpclient,HttpURLConnection。不過在android 6.0不支持httpclient了,如果想支持得添加org.apache.http.legacy.jar。
總結
在我們平時的項目使用volley就可以了,相對okhttp,volley非常穩定。Okhttp一般混合來用,能夠勝任相對復雜的需求。如今,在AndroidStudio中,網絡請求還是推薦使用Retrofit2+okhttp。
.
【更多精彩內容】