当前位置: 首页 > news >正文

Android框架之Volley

框架简介

Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。
简单来说,它提供了如下的便利功能:

  1. JSON,图像等的异步下载;

  2. 网络请求的排序(scheduling)

  3. 网络请求的优先级处理

  4. 缓存

  5. 多级别取消请求

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

使用方法

get方式:

RequestQueue mQueue = Volley.newRequestQueue(context);  
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());  
                            }  
                        });      
mQueue.add(stringRequest);

post方式:

StringRequest stringRequest = new StringRequest(Method.POST, url,  listener, errorListener);  
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;  
    }  
};  

JsonRequest还有两个子类,JsonObjectRequest和JsonArrayRequest,一个是用于请求一段JSON数据的,一个是用于请求一段JSON数组的。

相关文章:

  • OC变量数据类型
  • win7 蛋疼的时间格式转化
  • MacBook: 安装Mac OS X与多分区Windows双系统完美教程
  • ecshop如何判断缓存文件是否能更新
  • 登录信息提示
  • 某银行网银代发工资无法操作问题解决
  • SpringMVC文件上传
  • Magento 1.x 中文订单打印乱码
  • ios 控件代码transform学习笔记
  • DataTable和Xml互相转化
  • 机器学习温和指南
  • 打印xls注意事项
  • JSPpage与pageContext什么关系
  • django 1.8 官方文档翻译:13-3 日志
  • FTP使用
  • Effective Java 笔记(一)
  • ES6系统学习----从Apollo Client看解构赋值
  • iOS 颜色设置看我就够了
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript中的对象个人分享
  • Kibana配置logstash,报表一体化
  • Nacos系列:Nacos的Java SDK使用
  • npx命令介绍
  • Objective-C 中关联引用的概念
  • Python_OOP
  • React-Native - 收藏集 - 掘金
  • Redux 中间件分析
  • underscore源码剖析之整体架构
  • 给github项目添加CI badge
  • 机器学习中为什么要做归一化normalization
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端面试之闭包
  • 为视图添加丝滑的水波纹
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • # Panda3d 碰撞检测系统介绍
  • $jQuery 重写Alert样式方法
  • (BFS)hdoj2377-Bus Pass
  • (多级缓存)多级缓存
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (三)Honghu Cloud云架构一定时调度平台
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • *p++,*(p++),*++p,(*p)++区别?
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .Net 知识杂记
  • .NET 中的轻量级线程安全
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET下ASPX编程的几个小问题
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @Resource和@Autowired的区别
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [Android]创建TabBar
  • [iHooya]2023年1月30日作业解析