1.volley簡介
Volley名稱的由來: a burst or emission of many things or a large amount at once
在谷歌大會上 給的圖片是這樣的:
發射火弓箭
由圖也可以看出來,volley特別適合數據量不大但是通信頻繁的場景。在這之前,我們在程序中需要和網絡通信的時候,大體使用的東西莫過于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等。Volley是 Android 平臺上的網絡通信庫,能使網絡通信更快,更簡單,更健壯,Volley可是說是把AsyncHttpClient和Universal-Image-Loader的優點集于了一身,既可以像AsyncHttpClient一樣非常簡單地進行HTTP通信,也可以像Universal-Image-Loader一樣輕松加載網絡上的圖片。
2.如何下載Volley?
哈哈,上面說了那么多理論的東西,現在開始實踐拉~
首先我們在開發之前需要準備好Volley的jar包。如果是安裝了Git的開發者的話可以使用下面的命令
Git命令
然后將Jar包導入即可。如果不是用Git的開發者,則直接下載Volley的Jar包,導入即可。好啦~準備工作做好了,開始新建一個新的android項目,將jar包導入。歐耶
3.StringRequest的用法
我們先從發起第一個http請求開始吧!
第一步:需要獲取到一個RequestQueue對象
獲取RequestQueue
這里拿到的RequestQueue是一個請求隊列對象,它可以緩存所有的HTTP請求,然后按照一定 算法 并發地發出這些請求。RequestQueue內部的設計就是非常合適高并發的,因此我們不必為每一次HTTP請求都創建一個RequestQueue對象,這是非常浪費資源的,基本上在每一個需要和網絡交互的Activity中創建一個RequestQueue對象就足夠了。
第二步:創建一個StringRequest對象
參數解釋:第一個是請求地址,第二個是正確(服務器響應成功)的回調,第三個那就是錯誤(服務器響應失敗)的回調了
創建StringRequest對象
第三步:將StringRequest對象添加到RequestQueue里面
加入請求隊列中
注意點:由于Volley是要訪問網絡的,不要忘記在AndroidManifest.xml里面添加權限了
加權限
好了,現在運行一下程序,程序運行的結果如下:
運行結果
大家都知道,HTTP的請求類型一般都有兩種,post和get,剛剛舉出的列子是get的,那么問題來了,post 類型的又是怎么請求的呢。沒關系,StringRequest中還提供了另外一種四個參數的構造函數,其中第一個參數就是指定請求類型
帶四個參數的構造
可是這只是指定了HTTP請求方式是POST,那么我們要提交給服務器的參數又該怎么設置呢?很遺憾,StringRequest中并沒有提供設置POST參數的方法,但是當發出POST請求的時候,Volley會嘗試調用StringRequest的父類——Request中的getParams()方法來獲取POST參數,那么解決方法自然也就有了,我們只需要在StringRequest的匿名類中重寫getParams()方法,在這里設置POST參數就可以了。
那么stringRequest的介紹就到這了。感謝大家的耐心閱讀。后面會出Volley的后續系列。
Tags: Volley
文章來源:http://www.jianshu.com/p/d7cfa9083d1f