這可能是最好理解的Volley(一)

分類:技術 時間:2016-10-25

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


ads
ads

相關文章
ads

相關文章

ad