一.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);