Volley框架的使用

一.Volley的特点:
通信更快,更简单
Get,Post网络请求以及网络图像请求的高效率异步处理
对网络请求进行优先级的排序
网络请求的缓冲
多级别的取消请求和Activity的生命周期联动

二. 使用方向:
高效的Get/Post方式的数据请求交互
网络图片加载和缓存

三. Get的用法:
1. 首先在自定义的Application中定义一个全局的请求队列,便于管理全部的请求以及请求的撤销
2. 在Activity中实例化一个request,并将其添加到请求队列中去
3. 三种不同的请求数据StringRequest,JsonObjectRequest,JsonArrayRequest

示例代码:

//定义全局的请求队列
requestQueue=Volley.newRequestQueue(getApplicationContext());
//实例化一个请求,并添加到请求队列中去:
String url = "";
//实例化一个新的StringRequest,参数依次为:请求方式,请求的URL,请求成功的回调接口,请求失败的回调接口。
StringRequest request = new StringRequest(Method.GET, url, new Listener<String>() {
            @Override
            public void onResponse(String arg0) {
                Toast.makeText(MainActivity.this, arg0, Toast.LENGTH_SHORT).show();;
                Log.e("successful", arg0);
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError arg0) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, arg0.toString(), Toast.LENGTH_SHORT).show();
                Log.e("failed", arg0.toString());
            }
        });
        //为每一个请求设置Tag标记,便于后期对request的管理
        request.setTag("testGet");
        //添加到请求队列中去
        MyApplication.getHttpQueues().add(request)

其他两种请求数据方式也相同,均是先实例化对应的请求,然后添加到队列中去。

四.Post的使用方法:
Volley中post的使用方法和 Get使用类似,只是需要重写request的getParams()方法来传入要请求的参数。

String url = "";
StringRequest request = new StringRequest(Method.POST, url, new Listener<String>() {
    @Override
    public void onResponse(String arg0) {       
    //请求成功的回调方法
    }
},new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError arg0) {
    // 请求失败的回调方法
    }
}){
    //重写的getParams方法,将要请求的值返回
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Map<String,String> map = new HashMap<String, String>();     
        map.put("请求的键", "键所对应的值");
        return map;
    }
};
//同样把请求设置标签并添加到队列中去。
request.setTag("testGet");      
MyApplication.getHttpQueues().add(request);

你可能感兴趣的:(框架,图片,缓存)