一.基本使用

之前做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的快速使用相关推荐

  1. ym—— Android网络框架Volley(终极篇)

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103).谢谢支持! 没看使用过Volley的同学能够,先看看 Android网络框架Volley(体验篇) ...

  2. Android网络框架Volley项目实战-刘桂林-专题视频课程

    Android网络框架Volley项目实战-5257人已学习 课程介绍         使用Google 2013 I/O大会上发布的Volley请求框架做几个实战项目,归属地查询,QQ测试吉凶,天气 ...

  3. Android网络框架volley学习(一)基本用法

    记录学习Android网络基础框架volley的过程. 首先我们需要将volley下载下来导入Android Studio中,我学习一个开源库,最好的方式就是将其源码以module的方式依赖到工程中去 ...

  4. Android网络框架-Volley(一) 工作原理分析

    使用Volley可以让我们轻松访问网络,不用每次都要写大量重复的代码,而且它是异步的,不用我们再去写异步任务,这样代码非常简洁.还有很重要的一点,他还可以异步加载图片并且有缓存机制,防止OOM发生,V ...

  5. 基于OkHttp 、Retrofit 、Volley 、RxJava、Novate多种网络框架整合的快速项目开发框架,一行代码实现Ftp文件上传、文件下载、文件删除和进度监听的工具类的使用

    基于OkHttp .Retrofit .Volley .RxJava.Novate多种网络框架整合的快速项目开发框架,Ftp文件上传.文件下载的工具类的使用. 依赖于Ftp的jar包,对上传.下载.删 ...

  6. Android 网络通信框架Volley简介(Google IO 2013)

    Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...

  7. android网络框架

    https://www.zhihu.com/question/35189851 个人比较推荐Square开源组合,用Retrofit(目前已经是2.0+)+OkHttp基本上已经可以处理任何业务场景了 ...

  8. Google官方网络框架-Volley的使用解析Json以及加载网络图片方法

    Google官方网络框架-Volley的使用解析Json以及加载网络图片方法 Volley是什么?Google I/O 大会上,Google 推出 Volley的一个网络框架Volley适合什么场景? ...

  9. Google官方网络框架Volley实战——QQ吉凶测试,南无阿弥陀佛!

    Google官方网络框架Volley实战--QQ吉凶测试,南无阿弥陀佛! 这次我们用第三方的接口来做一个QQ吉凶的测试项目,代码依然是比较的简单 无图无真相 直接撸代码了,详细解释都已经写在注释里了 ...

最新文章

  1. 你和PPT高手之间,就只差一个iSlide
  2. asp.net七层架构是指什么
  3. SICC大会发布银行、保险用户报告——详解C2B下的服务创新
  4. 开放开源 | DeepKE:基于深度学习的开源中文关系抽取工具
  5. python 英语词频统计软件_Python实现统计英文文章词频的方法分析
  6. jeecg框架日常开发问题解决方法
  7. oracle 11g 使用图解,oracle 11g adrci 工具使用方法
  8. 卷积滤波 英文_图像处理必备英文词汇
  9. 各种浏览器怎么换ip
  10. 如何对NTFS文件进行压缩和加密
  11. 云业务“探路” 中国联通成立产业互联网子公司
  12. 知识图谱---简单实践(学习笔记)
  13. uniapp-获取省市区地址及内部高德sdk的使用
  14. VM虚拟机安装及应用
  15. 湍流——湍流积分长度
  16. Linux中文件搜索,查找,读取
  17. 一碗猪油————————特别鲜香的猪油什锦炒饭
  18. 2019 杭电多校 E - Everything Is Generated In Equal Probability HDU 6595 数学
  19. 打过无数硬仗的美团点评王兴 为何说下半场竞合才是常态?
  20. 1024 程序员节首批 37 位嘉宾阵容公布!院士、技术掌门人、行业精英齐亮相

热门文章

  1. Java集合框架:EnumMap
  2. Linux的rc.local自启动服务
  3. Ubuntu下安装Apache+PHP+Mysql
  4. 自定义GridView分页模板
  5. 第四层到第七层的高层交换技术及其应用
  6. DllMain中不当操作导致死锁问题的分析--死锁介绍
  7. 创业者应该如何看待金钱
  8. java总复习_java期末复习
  9. Java项目:健身器材商城系统(java+Jdbc+Servlet+Ajax+Fileupload+mysql)
  10. Java项目:农业计算工具(java+swing)