Volley数据请求
Volley框架相信大家都比较熟悉,网上资料一大堆,这就不详细讲解了
Volley用途
现在网络框架那么多,我们在什么时候用Volley比较合适呢?当你APP请求的数据量不大,网络请求次数频繁时,需要加载大量图片时都可以用Volley,当然,也可以用其他的图片加载框架,不过Volley也封装了图片加载,所以就不必要用其他的图片加载框架,用Volley框架时,可以去下载,这里不多说,网上资料有
使用:请求都有一个通用的过程,就是需要创建请求队列对象并且添加到队列
(创建请求队列)
RequestQueue mQueue = Volley.newRequestQueue(context);
(添加到队列)
mQueue.add(xxxRequest);
一、StringRequest:字符串请求(返回String数据)
1.创建StringRequest对象
StringRequest stringRequest = new StringRequest("请求的地址", new Response.Listener<String>() { @Override public void onResponse(String response) { Log.e("TAG", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("TAG", error.getMessage(), error); } });
第一个参数是请求的地址,第二个参数是成功返回的数据,第三参数是错误的回调
2.绑定对象
mQueue.add(stringRequest);
这样,一个最简单的String请求就完成了,如果你服务器返回的是String类型的,就用这种请求吧,但这种方式默认是用GET请求,如果需要POST请求,如下,步骤是一样的,只不过把StringRequest的参数改改
StringRequest stringRequest = new StringRequest(Method.POST, url, listener, errorListener) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<String, String>(); map.put("params1", "value1"); map.put("params2", "value2"); return map; } };
第一个参数是请求的方法,不指定的话默认是GET请求,第二个是请求的地址,第三个是成功回调,第四个是错误回调,我们在做POST请求时候,可以通过Map设置好请求的数据,然后再绑定就可以完成POST请求
二、JsonRequest:JSON请求(返回JSON数据)
JsonRequest是个抽象类,没办法直接创建实例使用,所以我们需要用到它的子类JsonObjectRequest和JsonArrayRequest,顾名思义,一个返回JSON对象,一个返回JSON数组,我们来看看怎么用
JsonObjectRequest:
1.创建JsonObjectRequest对象:
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest( "请求的地址", null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d("TAG", response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("TAG", error.getMessage(), error); } });
第一个参数是请求地址,第二个参数是请求的JsonObject对象,如果我们不需要向服务器提供这个对象,就设为null,第三第四分别就是成功和失败的回调了
2.绑定对象
mQueue.add(jsonObjectRequest );
同理,JsonArrayRequest也是这样使用
这样,Volley的请求就完成了