1、Volley简介
Volley是2013年google I/O上发布的一款网络框架,基于Android平台,能使网络通信更快、跟简单、更健全。
优点:
1、默认Android2.3及以上基于HttpURLConnection,2.3以下使用基于HttpClient;
2、符合Http缓存语义的缓存机制(提供了默认的磁盘和内存等缓存);
3、请求队列的优先级排序;
4、提供多样的取消机制
5、提供简便的图片加载工具
缺点:
1、只适合数据量小,通信频繁的网络操作
2、如果是数据量大的,像音频,视频等的传输,还是不要使用Volley为好。
2、下载Volley
下载Volley
git clone https://android.googlesource.com/platform/frameworks/volley
GitHub地址:https://github.com/google/volley
需要编译成jar包,新建一个Android项目,将volley.jar文件复制到libs目录下,这样准备工作就算是做好了。
3、Volley的使用
1)StringRequest的用法
/**
* 使用Volley联网请求
*/
private void getDataFormNetByVolley() {
//请求队列,获取一个RequestQueue对象
RequestQueue queue = Volley.newRequestQueue(context);
//String 请求
StringRequest request = new StringRequest(Request.Method.GET, Constans.NEWSCENTER_PAGER, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
LogUtil.e("使用Volley联网请求成功=="+s);
//缓存数据
CacheUtils.putString(context,Constans.NEWSCENTER_PAGER,s);
//设置适配器
processData(s);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
LogUtil.e("使用Volley联网请求失败=="+volleyError.getMessage());
}
}){
//解决乱码问题
@Override
protected Response<String> parseNetworkResponse(NetworkResponse response) {
try {
String parsed = new String(response.data,"UTF-8");
return Response.success(parsed,HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return super.parseNetworkResponse(response);
}
};
//添加到对列当中
queue.add(request);
}
Volley使用步骤如下:
1、创建ResquestQueue对象
2、创建StringRequest对象
3、将StringRequest对象添加到ResquestQueue队列当中
有可能会遇到乱码的问题,需要重写parseNetworkResponse方法。