侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Volley 基本用法

2023-12-16 星期六 / 0 评论 / 0 点赞 / 49 阅读 / 10603 字

GitHubDemo https://github.com/smanikandan14/Volley-demo#handling-error-codes Volley源码 https://githu

GitHubDemo  https://github.com/smanikandan14/Volley-demo#handling-error-codes

Volley源码   https://github.com/mcxiaoke/android-volley

Google IO2013网络框架Volley 演讲PDF http://download.csdn.net/source/preview/5686041/3f5f45640aca1b5c0cdc98fdafbac93d

Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮

特点 : Volley特别适合数据量不大但是通信频繁的场景

Volley提供的功能

  • JSON,图像等的异步下载;

  • 网络请求的排序(scheduling)

  • 网络请求的优先级处理

  • 缓存

  • 多级别取消请求

  • 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)

git clone https://android.googlesource.com/platform/frameworks/volley

网络请求的应用

1. 发起一条基本的HTTP请求

    StringRequest(Get请求,无请求参数)

RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());// 默认是Get方式 可以在源码 StringRequest 类中的构造方法中找到 如下// public StringRequest(String url, Listener<String> listener, ErrorListener errorListener) {//      this(Method.GET, url, listener, errorListener);//  }// 第一个参数 访问的URL, 第二个参数 响应后返回的结果监听, 第三个参数 响应出错返回的结果监听StringRequest stringRequest = new StringRequest("http://www.baidu.com",                new Response.Listener<String>() {                    @Override                    public void onResponse(String response) {//请求正确后相应结果                        Log.d("TAG", response);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {//请求出错结果                        Log.e("TAG", error.getMessage(), error);                    }                });//设置超时//DefaultRetryPolicy 中第一个参数 超时时间, 第二个参数最多请求次数, 第三个参数是一个乘数因子,//比如 超时时间是5s,乘数因子是2, 下次请求的时间就是10s后请求stringRequest.setRetryPolicy(new DefaultRetryPolicy(5000, 2, 2f));// 设置Tag值 可以在界面被销毁时 用来移除该网络请求stringRequest.setTag(MYGET_TAG);mQueue.add(stringRequest);

StringRequest(Post请求,无请求参数)

RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());// 第一个参数 请求方式, 第二个参数 访问的URL, 第三个参数 响应后返回的结果监听, // 第四个参数 响应出错返回的结果监听StringRequest stringRequest = new StringRequest(Method.POST,"http://www.baidu.com",                new Response.Listener<String>() {                    @Override                    public void onResponse(String response) {//请求正确后相应结果                        Log.d("TAG", response);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {//请求出错结果                        Log.e("TAG", error.getMessage(), error);                    }                });//设置超时//DefaultRetryPolicy 中第一个参数 超时时间, 第二个参数最多请求次数, 第三个参数是一个乘数因子,//比如 超时时间是5s,乘数因子是2, 下次请求的时间就是10s后请求stringRequest.setRetryPolicy(new DefaultRetryPolicy(5000, 2, 2f));// 设置Tag值 可以在界面被销毁时 用来移除该网络请求stringRequest.setTag(MYGET_TAG);mQueue.add(stringRequest);

StringRequest(Post请求,有请求参数)

//这里的参数是Map形式的RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());// 第一个参数 请求方式, 第二个参数 访问的URL, 第三个参数 响应后返回的结果监听, // 第四个参数 响应出错返回的结果监听StringRequest stringRequest = new StringRequest(Method.POST,"http://www.baidu.com",                new Response.Listener<String>() {                    @Override                    public void onResponse(String response) {//请求正确后相应结果                        Log.d("TAG", response);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {//请求出错结果                        Log.e("TAG", error.getMessage(), error);                    }                }{            @Override            protected Map<String, String> getParams() throws AuthFailureError {                Map<String, String> map = new HashMap<String, String>();                map.put("param1", "0");                map.put("param2", "5");                return map;            }        });//设置超时//DefaultRetryPolicy 中第一个参数 超时时间, 第二个参数最多请求次数, 第三个参数是一个乘数因子,//比如 超时时间是5s,乘数因子是2, 下次请求的时间就是10s后请求stringRequest.setRetryPolicy(new DefaultRetryPolicy(5000, 2, 2f));// 设置Tag值 可以在界面被销毁时 用来移除该网络请求stringRequest.setTag(MYGET_TAG);mQueue.add(stringRequest);



广告 广告

评论区