去年的Google I/O大會爲android開發者帶來了一個網絡請求框架,它的名字叫作Volley。Volley誕生的使命就是讓Android的網絡請求更快,更健壯,並且它的網絡通訊的實現是基於HttpURLConnection的。前幾天我整理了兩個網絡請求工具類,應付平常工做的開發需求仍是沒問題的,本身分別在HttpURLConnection和HttpClient的基礎上進行進一層的封裝,保證了API的足夠簡潔友好。有興趣的同窗能夠回頭去翻翻,源碼在Github上,搜索AndroidHttpUtil便可找到。Volley基於jdk原生的網絡請求類和BlockingQueue實現了它的網絡請求的功能。下面爲你們一一介紹下Volley爲編程帶來的實在好處。 android
準備步驟 git
git clone https://android.googlesource.com/platform/frameworks/volley github
導入項目,再export Jar包,推薦導出爲帶有源碼的,便於查看源碼 編程
圖片加載 json
同時Volley還爲開發者提供了一個直接加載網絡url的ImageView---NetworkImageView,使用起來更加的方便。 api
HTTP請求 緩存
Volley支持Http請求的全部八種方法,支持請求成功和失敗的回調。還支持設置超時時間、失敗後的重連次數、設置url緩存、以及爲請求設置Tag,便於中斷Request請求。請求成功的話,支持接收String、JsonObject和自定義bean,請求失敗的話VolleyError有不少子類,也方便排查網絡請求失敗的緣由。 微信
GET請求的實現如圖 網絡
若是須要添加請求參數的話,能夠去複寫Request中的getParams()方法,返回一個裝有請求參數的Map集合就Ok了。同時若是中斷請求線程也很簡單,能夠經過請求的引用直接cancel,也能夠經過 框架
RequestQueue.cancelAll(TAG_REQUEST)基於請求綁定的tag去中斷。這樣就避免了頁面結束而仍有後臺無用線程運行的現象了。Volley還支持網絡請求的優先級、排序等。
寫在最後:花了半天的時間研究Volley,發現它試用的兩個場景。一是網絡圖片加載,二是網絡請求返回json格式的數據。可是它的優點並不明顯,其餘第三方的圖片加載框架和網絡請求框架,不管都api的簡潔易用方面看,仍是擴展功能方面看都比它優秀。我推薦你們加載圖片就使用Android-Universal-ImageLoader,網絡請求的話,android-async-http,okHttp都是不錯的選擇。若是不想使用網絡請求的框架,AndroidHttpUtil也是個很好選擇。或許是我沒發現它的好,若是有朋友有啥異議,歡迎留言。
Volley demo地址:https://github.com/smanikandan14/Volley-demo
AndroidHttpUtil源碼地址:https://github.com/JackCho/AndroidHttpUtil
若是以爲對你有所幫助,歡迎你們訂閱個人微信公衆帳號——Android乾貨分享(ID:android_share)。下面是微信的二維碼,爲你提供及時高質的Android乾貨。技術交流QQ羣:318588906,歡迎你們加羣,共同探討下Android和Java技術,一塊兒壯大咱們的微信乾貨分享社區。