Volley使用
volley是進(jìn)行HTTP通信的庫,volley封裝了HTTP請求過程和響應(yīng)過程,用Request作為HTTP的請求對象,Response作為HTTP的響應(yīng)對象,Volley既可以使用StringRequest、JsonRequest發(fā)送HTTP請求獲取字符串?dāng)?shù)據(jù),也可以使用ImageRequest、ImageLoader、NetworkImageView加載圖片。
使用:使用StringRequest,首先要新建一個請求隊(duì)列對象RequestQueue,請求隊(duì)列緩存所有的HTTP請求,然后新建StringRequest對象,StringRequest對象中包含了服務(wù)器的URL地址、服務(wù)器響應(yīng)成功的回調(diào)接口,服務(wù)器響應(yīng)失敗的回調(diào)接口,也可以指定發(fā)送方式,默認(rèn)是GET請求,如果要發(fā)送POST請求的話,StringRequest要重寫父類(Request)的getParams(),在其中添加POST包體,最后把StringRequest對象添加到RequestQueue中,RequestQueue會按照一定的算法并發(fā)地發(fā)出這些請求。JsonRequest(它是抽象類,子類有JsonObjectRequest和JsonArrayRequest)和StringRequest類似,同樣繼承了Request類,把JsonRequest添加進(jìn)請求隊(duì)列后,請求成功的話,可以獲取到服務(wù)器返回的json數(shù)據(jù)。ImageRequest同樣繼承了Request類,用于請求網(wǎng)絡(luò)上的一張圖片,用法和獲取字符串的請求類似,ImageLoader、NetworkImageView也可以加載網(wǎng)絡(luò)上的圖片。
Volley庫主要靠三種線程實(shí)現(xiàn),包括主線程、緩存線程、網(wǎng)絡(luò)線程,我們一般在主線程中調(diào)用RequestQueue的add()方法來添加一條網(wǎng)絡(luò)請求,這條請求會先被加入到緩存隊(duì)列當(dāng)中,如果發(fā)現(xiàn)有相應(yīng)的緩存結(jié)果就直接讀取緩存并解析,然后回調(diào)給主線程。如果在緩存中沒有找到結(jié)果,就將這條請求加入到網(wǎng)絡(luò)請求隊(duì)列當(dāng)中,然后發(fā)送HTTP請求,再解析響應(yīng)結(jié)果,然后把響應(yīng)結(jié)果寫入緩存,之后回調(diào)給主線程。
參考鏈接:
http://blog.csdn.net/ysh06201418/article/details/46443235
總結(jié)
- 上一篇: 我的世界合成表
- 下一篇: 一文了解AUTOSAR网络管理