Volley框架作为Android网络访问的框架来说十分的便捷,其具体操作也很简单明了,相信在项目开发中十分有用。
volley
项目地址 https://github.com/smanikandan14/Volley-demo
(1) JSON,图像等的异步下载;
(2) 网络请求的排序(scheduling)
(3) 网络请求的优先级处理
(4) 缓存
(5) 多级别取消请求
(6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)
下面给出一个使用Volley访问网络数据的具体流程(Post请求)
public void pushData(){
//这里的request对象是自定义需要上传的一个封装类
IdReqVO request = new IdReqVO();
request.setGeneralId(generalId);
request.setGeneralIds(generalIds);
//以下即为Volley网路访问的具体步骤
RequestQueue requestQueue=Volley.newRequestQueue(context);
gson = new Gson();
String params = gson.toJson(request);
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(params);
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
JsonRequest<JSONObject> jsonRequest = new JsonObjectRequest(Method.POST, needPustUrl, jsonObject, new Response.Listener<JSONObject>() {//请求成功
@Override
public void onResponse(JSONObject response) {
if(response.getInt("code") == 200) {
..........
}
}, new Response.ErrorListener() {//请求失败
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", error.getMessage(), error);
}
});
//设置tag方便以后的区分
jsonRequest.setTag("abcPost");
//加入队列
requestQueue.add(jsonRequest);
}
注意,Volley框架的网络访问为异步访问,所以相关数据的设置应该在获取到数据的位置进行调用(即上述代码的省略处)