Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> volley框架詳解,volley框架

volley框架詳解,volley框架

編輯:關於android開發

volley框架詳解,volley框架


參考文檔:

http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73e7e808c027fa2ce0ac4384c413037bee43a7c4b54ce81273044b2141ebdac3574310023b49cc3884bd6bb953f2fff7d722f4292044f934fa0981a73817dcb0cfeaf68a3e7ae6cc4e5c5d2af4323be44717a9780fa4d7665dd6e804773b8b19838022e67ad9c36728f5e605998&p=86759a45d5c75ae90be2963a564496&newp=ce6df95485cc43e504bd9b7e0e1298231610db2151d3c44324b9d71fd325001c1b69e7ba24201b00d2c0766107ac4d5ae1f131763c1766dada9fca458ae7c46273&user=baidu&fm=sc&query=android+Volley%BF%F2%BC%DCAPI%CE%C4%B5%B5&qid=ce8f5d4d0000260a&p1=2

http://www.2cto.com/kf/201504/388742.html

推薦:http://blog.csdn.net/richie0006/article/details/47069635

      Volley可是說是把AsyncHttpClient和Universal-Image-Loader的優點集於了一身,既可以像AsyncHttpClient一樣非常簡單地進行HTTP通信,也可以像Universal-Image-Loader一樣輕松加載網絡上的圖片。除了簡單易用之外,Volley在性能方面也進行了大幅度的調整,它的設計目標就是非常適合去進行數據量不大,但通信頻繁的網絡操作,而對於大數據量的網絡操作,比如說下載文件等,Volley的表現就會非常糟糕。

 獲取到一個RequestQueue對象,可以調用如下方法獲取到:

 1 RequestQueue mQueue = Volley.newRequestQueue(context);  

  注意這裡拿到的RequestQueue是一個請求隊列對象,它可以緩存所有的HTTP請求,然後按照一定的算法並發地發出這些請求。

基本上在每一個需要和網絡交互的Activity中創建一個RequestQueue對象就足夠了。

接下來為了要發出一條HTTP請求,我們還需要創建一個StringRequest對象,如下所示:

 1 public void volleyGet(){
 2 
 3     StringRequest request=new StringRequest(Method.GET, "url", new Listener<String>() {
 4 
 5         @Override
 6 
 7         public void onResponse(String arg0) {
 8 
 9             // TODO Auto-generated method stub
10 
11         }
12 
13     }, new Response.ErrorListener() {
14 
15  
16 
17         @Override
18 
19         public void onErrorResponse(VolleyError arg0) {
20 
21             // TODO Auto-generated method stub
22 
23         }
24 
25     });
26 
27     MyApplication.getHttpQueue().add(request);
28 
29 }
30 
31  
32 
33 public void volleyPost(String... param) {
34 
35     HashMap<String, String> hm = new HashMap<String, String>();
36 
37     hm.put("requestPurpose", "1");
38 
39     hm.put("username", param[0]);
40 
41     hm.put("userpassword", param[1]);
42 
43     NormalPostRequest request = new NormalPostRequest("url", new Response.Listener<JSONObject>() {
44 
45         @Override
46 
47         public void onResponse(JSONObject arg0) {
48 
49             // TODO Auto-generated method stub
50 
51         }
52 
53     }, new Response.ErrorListener() {
54 
55         @Override
56 
57         public void onErrorResponse(VolleyError arg0) {
58 
59             // TODO Auto-generated method stub
60 
61         }
62 
63     }, hm);
64 
65     MyApplication.getHttpQueue().add(request);
66 
67 }

 

. JsonRequest的用法

學完了最基本的StringRequest的用法,我們再來進階學習一下JsonRequest的用法。類似於StringRequest,JsonRequest也是繼承自Request類的,不過由於JsonRequest是一個抽象類,因此我們無法直接創建它的實例,那麼只能從它的子類入手了。JsonRequest有兩個直接的子類,JsonObjectRequest和JsonArrayRequest,從名字上你應該能就看出它們的區別了吧?一個是用於請求一段JSON數據的,一個是用於請求一段JSON數組的。

至於它們的用法也基本上沒有什麼特殊之處,先new出一個JsonObjectRequest對象,如下所示:

 1 JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://m.weather.com.cn/data/101010100.html", null,  
 2         new Response.Listener<JSONObject>() {  
 3             @Override  
 4             public void onResponse(JSONObject response) {  
 5                 Log.d("TAG", response.toString());  
 6             }  
 7         }, new Response.ErrorListener() {  
 8             @Override  
 9             public void onErrorResponse(VolleyError error) {  
10                 Log.e("TAG", error.getMessage(), error);  
11             }  
12         });  

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved