· 自動排程網路請求
· 支援併發網路連線(即支援多執行緒)
· 支援標準的http快取協議(由伺服器來決定是否快取資料)
· 支援請求優先順序設定(4級)
· 支援取消單個或多個請求
· 易於定製(重試),擴充套件性強。比如retry&backoff機制
· 強大的網路請求能力讓你輕鬆的傳送非同步請求來填充ui資料
· 提供除錯和跟蹤工具
擅長將rpc(遠端過程呼叫協議,c/s模式)型別的操作,用來展示伺服器資料
。比如以某種資料格式獲取一頁搜尋結果。支援任意的資料傳輸格式,比如,字串,json,你也可以定義自己的資料格式。其實就是自定義request。volley讓你不再寫這些重複的模板**(網路請求邏輯,不再重複造輪子),這樣你就可以專注於你應用本身的業務邏輯.
由於volley都是在記憶體中解析和處理資料
1. 直接把**clone下來,把volley的**直接copy到你的project裡,
2. 作為乙個library專案存在或者jar包存在
3. 新增網路許可權
1. 初始化乙個
requestqueue
mrequestqueue = volley.newrequestqueue(this);
2. 構建乙個
request
,這個demo
裡我們使用的是
stringrequest
stringrequest request = new stringrequest(
要訪問的url,
new response.listener() , //請求結果正確返回的
listener
0, //壓縮比,不想壓縮就傳0
0, //壓縮比,不想壓縮就傳0
null, //伸縮,
null
不做任何處理
bitmap.config.rgb_565, //想讓顯示的質量,
rgb_565
、argb_8888
、argb_4444
new response.errorlistener() {}); //請求結果錯誤返回的
listener
(3)jsonobjectrequest
jsonobjectrequest request = new jsonobjectrequest(
要請求的
url,
params, //要向伺服器傳入的引數
new response.listener() {}, //請求結果正確返回的
listener
new response.errorlistener() {}); //請求結果錯誤返回的
listener
(4)imageloader
:不使用記憶體快取,則給乙個預設的
imagecache
,不重寫裡面的方法
mimageloader = new imageloader(
mrequestqueue, //請求佇列
new imageloader.imagecache() ); //imageloader
的快取在普通快取前執行 使用
imageloader載入
mimageloader.get(
imageloader.getimagelistener(
miv, //顯示到哪
r.mipmap.ic_launcher, //預設顯示的資源id
r.mipmap.ic_launcher) //請求失敗顯示的
(5)networkimageview
在布局檔案中:
android:id="@+id/niv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerinparent="true" />
在**中(前兩步跟imageloader一樣,最後一步如下):
mniv.setimageurl(url, mimageloader);
自定義request需要實現兩步:
1. 繼承request,其中t表示轉換成的response的型別
2. 實現抽象方法 parsenetworkresponse()
和deliverresponse()
網路請求Volley篇 Android
volley相關api 1.requestqueue 請求佇列,會自動執行佇列中的請求 volley.newrequestqueue context 建立乙個請求佇列 addrequest request request 將請求新增到請求佇列 2.request 代表請求的介面 stringrequ...
Volley網路請求資料框架
volley網路請求框架 首先我們要先來解釋一下volley這個東西是什麼?它要具體幹什麼?它的優勢及劣勢是什麼?我們一點點來吧。我們先來說一下這個是什麼?根據官方說明 它是2013年google i o上發布的一款網路框架 基於android 平台,能夠使網路通訊更快更簡單更健全等等 說白了就是乙...
Fetch概述 公升級的網路請求
xmlhttprequest的問題 所有的功能全部集中在同乙個物件上,容易書寫出混亂不易維護的 採用傳統的事件驅動模式,無法適配新的 promise api fetch api 的特點 並非取代 ajax,而是對 ajax 傳統 api 的改進 精細的功能分割 頭部資訊 請求資訊 響應資訊等均分布到...