博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Volley 基本用法
阅读量:5936 次
发布时间:2019-06-19

本文共 3786 字,大约阅读时间需要 12 分钟。

hot3.png

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
 listener, ErrorListener errorListener) {//      this(Method.GET, url, listener, errorListener);//  }// 第一个参数 访问的URL, 第二个参数 响应后返回的结果监听, 第三个参数 响应出错返回的结果监听StringRequest stringRequest = new StringRequest("http://www.baidu.com",                new Response.Listener
() {                    @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
() {                    @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
() {                    @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
 getParams() throws AuthFailureError {                Map
 map = new HashMap
();                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);

转载于:https://my.oschina.net/u/942298/blog/390483

你可能感兴趣的文章
172.16.82.0/25的含义,IP段,掩码
查看>>
测试之路
查看>>
终于对了
查看>>
RabbitMQ集群
查看>>
Apache防盗链和隐藏版本信息
查看>>
ARP协议与路由
查看>>
使用pypiserver搭建私有源
查看>>
SCI检索介绍
查看>>
Android开发之生成自己的签名文件及App签名打包
查看>>
如何提高阿里云上应用的可用性(二)
查看>>
云宏WinCloud前端工程师告诉你什么是UI扁平化
查看>>
如何压缩PDF文件,有什么简单的方法
查看>>
SpringMVC常用注解标签详解
查看>>
day18 Set集合
查看>>
Oracle event之db file read
查看>>
ORA 00600 [ktrexc_1]
查看>>
Docker 安装
查看>>
查询文件系统容量与每个目录的容量
查看>>
角度与弧度的转换 - 三角学
查看>>
接口规范 3.应用相关接口
查看>>