Android学习笔记(四):Volley的使用

来源:互联网 发布:hadoop java 源码下载 编辑:程序博客网 时间:2024/05/18 10:40

转自:http://my.oschina.net/summerpxy/blog/213207

使用Volley以Http get的方式请求JSONObject对象,我们需要使用JsonObjectRequest类的构造方法。

new JsonObjectRequest(url,jsonObject,listener)去构造一个请求request。

url:请求的地址。

jsonObject:需要传递的数据,如果是以get方式传递,则为null,如果是以post方式传递,则需要设置数据。

listener:reponse.listener()的实例。

RequestQueue queue = Volley.newRequestQueue(this);        String url = "http://m.weather.com.cn/data/101201401.html";        JsonObjectRequest objRequest = new JsonObjectRequest(url, null,                new Response.Listener<JSONObject>() {                    @Override                    public void onResponse(JSONObject obj) {                        System.out.println("----------:" + obj);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {                        error.getMessage();                    }                });        objRequest.setTag("obj");        queue.add(objRequest);

如果是以Post方式去请求,需要设置post的数据。

Map<String,String> map=new HashMap<String,String>();        map.put("token", "AbCdEfGh123456");        JSONObject params=new JSONObject(map);        RequestQueue queue = Volley.newRequestQueue(this);        String url = "http://m.weather.com.cn/data/101201401.html";        JsonObjectRequest objRequest = new JsonObjectRequest(url, params,                new Response.Listener<JSONObject>() {                    @Override                    public void onResponse(JSONObject obj) {                        System.out.println("----------:" + obj);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {                        error.getMessage();                    }                });

在添加当前的request到队列中的时候,我们可以指定优先级,具体是要重写request的getPriority()方法

JsonObjectRequest objRequest = new JsonObjectRequest(url, params,                new Response.Listener<JSONObject>() {                    @Override                    public void onResponse(JSONObject obj) {                        System.out.println("----------:" + obj);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {                        error.getMessage();                    }                }) {            @Override            public com.android.volley.Request.Priority getPriority() {                return Priority.HIGH;            }        };

如果想要取消当前队列中的request,可以调用cancelAll()。

objRequest.setTag("obj");        queue.add(objRequest);        //取消请求        queue.cancelAll("obj");
0 0