Volley使用(一)
来源:互联网 发布:神速百度快速排名优化 编辑:程序博客网 时间:2024/06/06 15:42
相信大家很多做安卓开发的都知道Volley这个框架 本人做了差不多7个项目 有四个用的这个框架 对它还是比较钟爱的 好下面就来详细介绍一下 整个Volley框架 我分为三部分去讲解 今天想进行一些基础的讲解
1.什么是Volley
Volley是Google I/O 2013上推出的 是android上的网络通讯库
下面看一张谷歌官方的图片
这张图很直观的看出
Volley特别适合用于网络交互频繁 但是数据量不大的情况 如果你要下载一些大文件 使用Volley框架是比较糟糕的选择 Volley不适合大数据量的交互
Volley把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片
2.Volley有哪些功能
a.数据异步请求;
b.网络请求的排序
c.网络请求的优先级处理
d.缓存(volley内部会创建一个缓存线程)
e.多级别取消请求
f.和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)
3.volley jar包
我们可以百度上面搜出一大堆jar包 这个我不说了
4.Volley的用法(StringRequest)
最基本的HTTP通信,即发起一条HTTP请求,
首先我们需要得到一个RequestQueue
RequestQueue MyRequestQueue = Volley.newRequestQueue(context);
这个MyRequestQueue 是一个请求队列对象 内部的设计非常适合高并发的 因此我们只需要创建一个RequestQueue就可以了 我们可以将这行代码放到Application里面去初始化(这里我们只是说一下用法 所以我就直接放到Activity中了)
接下来我们看一下
- 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);
- }
- });
这段代码中两个回调方法 大家一应该都明白这里面的意思 这里需要三个参数 第一个URl不多说 第二个请求成功的回调方法 第三个 请求失败的回调方法
最后我们需要把这个StringRequest add到我们刚才创建的请求队列中
MyRequestQueue.add(stringRequest)
注:StringRequest只是Request的一种还有很多(ImageRequest,jsonRequest等等 还可以使用自定义的Request这个后面我们详细讲解一下)
上面就是一个简单的Volley的get请求 有人问了 那post请求呢
好接着看
StringRequest提供了一个有四个参数的方法
StringRequest stringRequest = new StringRequest(Method.POST, url, listener, errorListener);
我们看第一个参数 大家肯定明白了 对 就是我们选择get post的地方
我们只是这里可以设置请求方法 但是并没有我们可以提交参数的地方 那怎么办呢 我当时也纳闷 最后看了大神的博客才知道(引用大神的一段话)
StringRequest中并没有提供设置POST参数的方法,但是当发出POST请求的时候,Volley会尝试调用StringRequest的父类——Request中的getParams()方法来获取POST参数,那么解决方法自然也就有了,我们只需要在StringRequest的匿名类中重写getParams()方法,在这里设置POST参数就可以了
- 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;
- }
- };
这个Request我们提了一句 我们还可以使用自己定制的Request这个后面讲
总结
Volley请求其实非常简单
1.创建RequestQueue
2.创建StringRequest
3.将StringRequest添加到请求队列中
我们重点强调的是2 StringRequest 还有ImageRequest JsonRequest等 其他的请求步骤跟这个一样 大家要学会举一反三
有哪些写的不对的地方请大家及时反映
- Volley使用(一)
- Volley的使用(一)
- Volley的使用(一)
- Volley简单使用一
- Volley 使用一
- Volley框架(一):使用Volley请求数据
- Volley的使用(一)
- Volley简单学习使用一
- Volley框架的使用一
- Volley使用笔记(一)
- Android Volley框架使用(一)
- volley的使用(一)
- Android Volley框架使用(一)
- volley源码解析(一)--volley的使用和架构
- Android Volley使用介绍(一),Volley的基本用法
- volley源码解析(一)--volley的使用和架构
- Android Volley 框架的使用(一)
- Volley 的介绍和使用(一)
- log4net 日志文件 按分钟为文件名保存日志文件
- ue32编辑器光标怎么变成方的了,不方便啊,怎么改呢?
- ps提示:字体在系统上 但需要更改版面
- LeetCode_Remove Element
- 了解你的磁盘之使用bonnie++测试磁盘性能
- Volley使用(一)
- win8显示缩略图
- LXC1.0.7-- lxc-start 源码分析 03
- 异步编程的处理
- jQuery 中 三目运算 替代 if 判断 的简洁性
- 执行事务时,如果顺序不一样,会导致sql锁死
- Java I/O解读与使用实例
- 处理器体系结构(了解CPU的基本运行原理)——《深入理解计算机系统》
- 一个多maven项目聚合的实例