Android网络框架Volley的快速使用
一.基本使用
之前做Android开发都是使用学长自己封装好的网络请求框架,第三方网络框架也很多,网上搜索了一下,大多数人推荐使用
- android-async-http
- okhttp
- Volley
其中Volley是Google推出了官方的针对Android平台上的网络通信库,能非常简单地进行HTTP通信,并支持类似Universal-Image-Loader的网络图片加载。
下面举例说明下Volley的最基本Http请求方法,后台是Struct2 的action接口,方法名为login,参数为用户名和密码
private void testHttp(){//新建一个请求,参数为(请求方式,网络地址,请求成功回调,请求失败回调),如果有参数传递的话重写StringRequest的 Map<String, String> getParams() 方法StringRequest request = new StringRequest(Method.POST, "http://localhost:8080/app_login.action", new Response.Listener<String>(){@Overridepublic void onResponse(String response) {// TODO Auto-generated method stubSystem.out.println("success:"+response);}}, new ErrorListener(){@Overridepublic void onErrorResponse(VolleyError error) {// TODO Auto-generated method stubSystem.out.println("error:"+error);}}){@Overrideprotected Map<String, String> getParams() throws AuthFailureError {// TODO Auto-generated method stubMap<String, String> map = new HashMap<String, String>(); map.put("username", "123456"); map.put("password", "123456"); return map;}};//最后获取到一个RequestQueue请求队列对象,它可以缓存所有的HTTP请求,然后按照一定的算法并发地发出这些请求,将request对象添加到RequestQueue里面,让RequestQueue智能的调用RequestQueue mQueue = Volley.newRequestQueue(getActivity()); mQueue.add(request);
}
调用以上方式,打印出返回的Json结果,如图:
二.优化
在项目中,很多地方都需要用到网络请求和服务器进行数据交换,可以对Volley进行简单的封装:
1.新建一个BaseActivity类,继承Activity,添加如下方法:
private static final String httpUrl = "http://localhost:8080/";protected static final String Login = "app_login.action";protected static final String Sign = "app_sign.action";protected static final String getWallet = "app_getWallet.action";public void asyHttp(String method,final Map<String,String> map,HttpCallBack callBack){this.httpCallBack = callBack;StringRequest request = new StringRequest(Method.POST, httpUrl+method, new Response.Listener<String>(){@Overridepublic void onResponse(String response) {httpCallBack.Success(response);System.out.println("success:"+response);}}, new ErrorListener(){@Overridepublic void onErrorResponse(VolleyError error) {httpCallBack.Fail(error.toString());System.out.println("error:"+error);}}){@Overrideprotected Map<String, String> getParams() throws AuthFailureError {return map;}};RequestQueue mQueue = Volley.newRequestQueue(getActivity()); mQueue.add(request); }
其中定义了网络请求的地址,和所有需要用到的请求接口,asyHttp的参数为(方法名,参数,成功回调,失败回调)
2.在需要用到网络请求的Activity,继承BaseActivity,并调用asyHttp方法
Map<String, String> map = new HashMap<String, String>(); map.put("username", "123456"); map.put("password", "123456"); asyHttp(Login, map, new HttpCallBack(){@Overridepublic void Success(String respose) {//成功之后的处理代码}@Overridepublic void Fail(String error) {//失败之后的处理代码}});
Android网络框架Volley的快速使用相关推荐
- ym—— Android网络框架Volley(终极篇)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103).谢谢支持! 没看使用过Volley的同学能够,先看看 Android网络框架Volley(体验篇) ...
- Android网络框架Volley项目实战-刘桂林-专题视频课程
Android网络框架Volley项目实战-5257人已学习 课程介绍 使用Google 2013 I/O大会上发布的Volley请求框架做几个实战项目,归属地查询,QQ测试吉凶,天气 ...
- Android网络框架volley学习(一)基本用法
记录学习Android网络基础框架volley的过程. 首先我们需要将volley下载下来导入Android Studio中,我学习一个开源库,最好的方式就是将其源码以module的方式依赖到工程中去 ...
- Android网络框架-Volley(一) 工作原理分析
使用Volley可以让我们轻松访问网络,不用每次都要写大量重复的代码,而且它是异步的,不用我们再去写异步任务,这样代码非常简洁.还有很重要的一点,他还可以异步加载图片并且有缓存机制,防止OOM发生,V ...
- 基于OkHttp 、Retrofit 、Volley 、RxJava、Novate多种网络框架整合的快速项目开发框架,一行代码实现Ftp文件上传、文件下载、文件删除和进度监听的工具类的使用
基于OkHttp .Retrofit .Volley .RxJava.Novate多种网络框架整合的快速项目开发框架,Ftp文件上传.文件下载的工具类的使用. 依赖于Ftp的jar包,对上传.下载.删 ...
- Android 网络通信框架Volley简介(Google IO 2013)
Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...
- android网络框架
https://www.zhihu.com/question/35189851 个人比较推荐Square开源组合,用Retrofit(目前已经是2.0+)+OkHttp基本上已经可以处理任何业务场景了 ...
- Google官方网络框架-Volley的使用解析Json以及加载网络图片方法
Google官方网络框架-Volley的使用解析Json以及加载网络图片方法 Volley是什么?Google I/O 大会上,Google 推出 Volley的一个网络框架Volley适合什么场景? ...
- Google官方网络框架Volley实战——QQ吉凶测试,南无阿弥陀佛!
Google官方网络框架Volley实战--QQ吉凶测试,南无阿弥陀佛! 这次我们用第三方的接口来做一个QQ吉凶的测试项目,代码依然是比较的简单 无图无真相 直接撸代码了,详细解释都已经写在注释里了 ...
最新文章
- 你和PPT高手之间,就只差一个iSlide
- asp.net七层架构是指什么
- SICC大会发布银行、保险用户报告——详解C2B下的服务创新
- 开放开源 | DeepKE:基于深度学习的开源中文关系抽取工具
- python 英语词频统计软件_Python实现统计英文文章词频的方法分析
- jeecg框架日常开发问题解决方法
- oracle 11g 使用图解,oracle 11g adrci 工具使用方法
- 卷积滤波 英文_图像处理必备英文词汇
- 各种浏览器怎么换ip
- 如何对NTFS文件进行压缩和加密
- 云业务“探路” 中国联通成立产业互联网子公司
- 知识图谱---简单实践(学习笔记)
- uniapp-获取省市区地址及内部高德sdk的使用
- VM虚拟机安装及应用
- 湍流——湍流积分长度
- Linux中文件搜索,查找,读取
- 一碗猪油————————特别鲜香的猪油什锦炒饭
- 2019 杭电多校 E - Everything Is Generated In Equal Probability HDU 6595 数学
- 打过无数硬仗的美团点评王兴 为何说下半场竞合才是常态?
- 1024 程序员节首批 37 位嘉宾阵容公布!院士、技术掌门人、行业精英齐亮相
热门文章
- Java集合框架:EnumMap
- Linux的rc.local自启动服务
- Ubuntu下安装Apache+PHP+Mysql
- 自定义GridView分页模板
- 第四层到第七层的高层交换技术及其应用
- DllMain中不当操作导致死锁问题的分析--死锁介绍
- 创业者应该如何看待金钱
- java总复习_java期末复习
- Java项目:健身器材商城系统(java+Jdbc+Servlet+Ajax+Fileupload+mysql)
- Java项目:农业计算工具(java+swing)