由于这部分内容较多,所以打算分成几个部分来写,这篇文章主要是从整体上介绍Volley框架的基本使用;
开发android应用很多时候都要涉及网络操作,Android SDK中提供了HttpClient 和 HttpUrlConnection两种方式用来处理网络操作,但当应用比较复杂的时候需要我们编写大量的代码处理很多东西:图像缓存,请求的调度等等;
而Volley框架就是为解决这些而生的,它与2013年Google I/O大会上被提出:使得Android应用网络操作更方便更快捷;抽象了底层Http Client等实现的细节,让开发者更专注与产生RESTful Request。另外,Volley在不同的线程上异步执行所有请求而避免了阻塞主线程。
Volley到底有哪些特点呢?
获取Volley:
- git clone https://android.googlesource.com/platform/frameworks/volley
或者https://github.com/mcxiaoke/android-volley
你也可以直接下载 volley.jar
- 如果你是通过git clone方式,为了生成voller.jar
你需要在volley目录下执行:
android update project -p
ant jar
将Volley添加进项目:
- 将volley.jar
粘贴进libs
文件夹下,然后右键volley.jar
文件,选择Add as Library
根据字面意思我们不难看出
RequestQueue
用来执行请求的请求队列Request
用来构造一个请求对象Request对象
主要有以下几种类型: StringRequest
响应的主体为字符串JsonArrayRequest
发送和接收JSON数组JsonObjectRequest
发送和接收JSON对象ImageRequest
发送和接收Image首先我们需要创建一个RequestQueue reqQueue
,然后构建一个自己所需要的XXRequest req
,之后通过reqQueue.add(req)
;将请求添加至请求队列;
RequestQueue requestQueue=Volley.newRequestQueue(this);//这里的this指的是Context
private final String url="http://www.xxx.com/person.json"//所需url
JsonObjectRequest req=new JsonObjectRequest(url,null,new Response.Listener<JsonObject>(){
@Override
public void onResponse(JsonObject response){
//添加自己的响应逻辑,
}
},
new ResponseError.Listener(){
@Override
public void onResponseError(VollerError error){
//错误处理
Log.d("Error Message:","Error is"+error);
}
});
requestQueue.add(req);
在构建JsonObjectRequest
对象时,需要四个参数
JsonObjectRequest req= new JsonObjectRequest(String url,Request.Method.GET(或者POST),new Response.Listener(),new ResponseError.Listener()),
其中第二个参数代表http方法,第三个和第四个分别是响应监听和响应错误监听,分别需要覆写onResponse()
和onResponseError()
方法;RequestQueue
将会执行请求,并将响应回调onResponse()
方法,所以需要在onResponse()方法中实现自己的业务逻辑;
关于更多有关Volley的用法,请关注个人博客或微博,随后更新!
原文地址:http://blog.csdn.net/qwm8777411/article/details/45770979