volley使用与解析(一)
1、什么是volley
Volley是google发布的基于Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。
获取地址:git clone https://android.googlesource.com/platform/frameworks/volley 然后自行编译成可用的jar
优点:
JSON,图像等的异步下载;
网络请求的排序(scheduling)
网络请求的优先级处理
缓存
多级别取消请求
和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)
2、简单使用
(创建请求队列==创建请求对象==将请求对象添加到队列)
创建一个请求队列RequestQueue mQueue = Volley.newRequestQueue(context);
然后 创建一个请求对象StringRequest stringRequest = new StringRequest
把请求对象放到请求队列里面 就可以了 StringRequest stringRequest = new StringRequest
// 当需要返回结果是String 的时候 用StringRequest 当需要是json 的时候 使用 JsonObjectRequest
当然了 要加上对应的网络请求权限
<uses-permission android:name="android.permission.INTERNET" />
3、示例
// 创建队列 RequestQueue rq = Volley.newRequestQueue(getApplicationContext()); // 创建请求对象 get StringRequest sr = new StringRequest(mybaseUrl, new Listener<String>() { @Override public void onResponse(String response) { System.out.println(response); } }, new ErrorListener() { @Override public void onErrorResponse(VolleyError error) { System.out.println(error.getMessage()); } }); // 加入队列 rq.add(sr);
// post 请求 StringRequest srPost = new StringRequest(Method.POST, mybaseUrl, new Listener<String>() { @Override public void onResponse(String response) { // TODO Auto-generated method stub } }, new ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // TODO Auto-generated method stub } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<String, String>(); map.put("abc", "shsh"); return map; } }; rq.add(srPost);
// 当需要返回结果是String 的时候 用StringRequest 当需要是json 的时候 使用 JsonObjectRequest JsonObjectRequest js = new JsonObjectRequest(mybaseUrl, null, new Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { // TODO Auto-generated method stub } }, new ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }); }