Volley的使用

作者: 靓亮 | 来源:发表于2017-07-11 00:16 被阅读0次

    介绍
    谷歌开源的,
    专注于处理高频率的数据比较小的请求
    内部仍然是使用的HttpURLConnection和HttpClient进行网络请求的,
    只是对于不同的
    Android版本进行了响应的切换,
    2.3之前使用的HttpClient,
    2.3之后使用的是 HttpURLConnection
    支持取消请求
    具有网络请求和图片加载的功能

    添加依赖

    compile 'com.android.volley:volley:1.0.0'
    

    创建RequestQueue请求队列,它是用来执行请求对象的

    RequestQueue queue = Volley.newRequestQueue(this);
    

    创建请求对象,这里使用最简单的StringRequest:

    StringRequest stringRequest = new StringRequest(Api.TEST, new com.android.volley.Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            text.setText(response);
        }
    }, new com.android.volley.Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
    
        }
    });
    

    执行请求,将Request对象添加到RequestQueue中,即可

    //3.执行请求
    queue.add(stringRequest);
    

    使用JsonRequest进行请求,返回的是json对象

    //1.创建JsonRequest请求
    JsonObjectRequest joRequest = new JsonObjectRequest(url, null, new Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            tv_result.setText(response.toString());
        }
    }, new MyErrorListener());
    //2.执行请求
    queue.add(joRequest);
    

    使用Volley发送post请求,需要自己重写Request的getParams方法

    public class PostReuqest extends StringRequest {
        private Map<String, String> params;
        public PostReuqest(String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
            super(url, listener, errorListener);
        }
        public PostReuqest(int method,String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
            super(method,url, listener, errorListener);
        }
        public void setParams(Map<String, String> params){
            this.params = params;
        }
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            return params;
        }
    }
    
    PostReuqest stringRequest = new PostReuqest(Request.Method.POST,Api.LOGIN, new com.android.volley.Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            text.setText(response);
        }
    }, new com.android.volley.Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
    
        }
    });
    HashMap<String,String> map = new HashMap<>();
    map.put("username","hehehe");
    map.put("password","12321");
    stringRequest.setParams(map);
    
    

    相关文章

      网友评论

        本文标题:Volley的使用

        本文链接:https://www.haomeiwen.com/subject/nucphxtx.html