框架简介

Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。
简单来说,它提供了如下的便利功能:

  1. JSON,图像等的异步下载;

  2. 网络请求的排序(scheduling)

  3. 网络请求的优先级处理

  4. 缓存

  5. 多级别取消请求

  6. 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)NetWorkImageView

使用方法

get方式:

RequestQueue mQueue = Volley.newRequestQueue(context);  
StringRequest stringRequest = new StringRequest("http://www.baidu.com",  
                        new Response.Listener<String>() {  
                            @Override  
                            public void onResponse(String response) {  
                                Log.d("TAG", response);  
                            }  
                        }, new Response.ErrorListener() {  
                            @Override  
                            public void onErrorResponse(VolleyError error) {  
                                Log.e("TAG", error.getMessage());  
                            }  
                        });      
mQueue.add(stringRequest);

post方式:

StringRequest stringRequest = new StringRequest(Method.POST, url,  listener, errorListener);  
StringRequest stringRequest = new StringRequest(Method.POST, url,  listener, errorListener) {  
    @Override  
    protected Map<String, String> getParams() throws AuthFailureError {  
        Map<String, String> map = new HashMap<String, String>();  
        map.put("params1", "value1");  
        map.put("params2", "value2");  
        return map;  
    }  
};  

JsonRequest还有两个子类,JsonObjectRequest和JsonArrayRequest,一个是用于请求一段JSON数据的,一个是用于请求一段JSON数组的。

本文固定链接: http://www.js-code.com/android/android_56293.html