网络请求框架---Volley

去年的Google I/O大会为android开发者带来了一个网络请求框架,它的名字叫做Volley。Volley诞生的使命就是让Android的网络请求更快,更健壮,而且它的网络通信的实现是基于HttpURLConnection的。前几天我整理了两个网络请求工具类,应付日常工作的开发需求还是没问题的,自己分别在HttpURLConnection和HttpClient的基础上进行进一层的封装,保证了API的足够简洁友好。有兴趣的同学可以回头去翻翻,源码在Github上,搜索AndroidHttpUtil即可找到。Volley基于jdk原生的网络请求类和BlockingQueue实现了它的网络请求的功能。下面为大家一一介绍下Volley为编程带来的实在好处。

准备步骤

  1. git clone https://android.googlesource.com/platform/frameworks/volley
  2. 导入项目,再export Jar包,推荐导出为带有源码的,便于查看源码

图片加载


同时Volley还为开发者提供了一个直接加载网络url的ImageView---NetworkImageView,使用起来更加的方便。

HTTP请求

Volley支持Http请求的所有八种方法,支持请求成功和失败的回调。还支持设置超时时间、失败后的重连次数、设置url缓存、以及为请求设置Tag,便于中断Request请求。请求成功的话,支持接收String、JsonObject和自定义bean,请求失败的话VolleyError有很多子类,也方便排查网络请求失败的原因。

GET请求的实现如图

如果需要添加请求参数的话,可以去复写Request中的getParams()方法,返回一个装有请求参数的Map集合就Ok了。同时如果中断请求线程也很简单,可以通过请求的引用直接cancel,也可以通过

RequestQueue.cancelAll(TAG_REQUEST)基于请求绑定的tag去中断。这样就避免了页面结束而仍有后台无用线程运行的现象了。Volley还支持网络请求的优先级、排序等。

写在最后:花了半天的时间研究Volley,发现它试用的两个场景。一是网络图片加载,二是网络请求返回json格式的数据。但是它的优势并不明显,其他第三方的图片加载框架和网络请求框架,无论都api的简洁易用方面看,还是扩展功能方面看都比它优秀。我推荐大家加载图片就使用Android-Universal-ImageLoader,网络请求的话,android-async-http,okHttp都是不错的选择。如果不想使用网络请求的框架,AndroidHttpUtil也是个很好选择或许是我没发现它的好,如果有朋友有啥异议,欢迎留言。

Volley demo地址https://github.com/smanikandan14/Volley-demo

AndroidHttpUtil源码地址https://github.com/JackCho/AndroidHttpUtil

如果觉得对你有所帮助,欢迎大家订阅我的微信公众账号——Android干货分享(ID:android_share)。下面是微信的二维码,为你提供及时高质的Android干货。

网络请求框架---Volley,布布扣,bubuko.com

时间: 2024-08-02 10:09:27

网络请求框架---Volley的相关文章

Android网络请求框架 Volley 你所要知道的一切

Volley是2013年谷歌官方推出的Android平台的网络通信库,Volley适用于并发和对效率.性能要求比较高的场景. 1.Volley的特点 优点: (1)使通信更快.更简单 (2)高效的get.post网络请求以及网络图像的高效率异步处理请求 (3)能对网络请求进行排序.优先级处理 (4)网络图片加载和缓存 (5)多级别取消请求,当有多个网络请求同时进行的时候,可以进行同时取消操作 (6)和Activity生命周期的联动,当Activity结束销毁时,可以同时取消网络请求操作 (7)性

Android学习笔记:Andorid网络请求框架Volley的使用(上)

Volley框架是Google I/O 2013大会上发布的.Volley是Google针对Android平台上的网络通信库而诞生,该框架能使网络通信更快,更简单,更健壮.Volley的特点有: Ⅰ:通信更简单更快捷 ll:Get,Post网络请求及网络图像进行高效异步处理 III:可以对多个网络请求进行优先级排序以级多级别取消操作 IV:网络请求缓存及与Activity生命周期进行联动,在Activity销毁的时候可以对网络请求进行取消操作,防止内存泄露. Volley的使用很简单: 1,下载

基于Retrofit+RxJava的Android分层网络请求框架

目前已经有不少Android客户端在使用Retrofit+RxJava实现网络请求了,相比于xUtils,Volley等网络访问框架,其具有网络访问效率高(基于OkHttp).内存占用少.代码量小以及数据传输安全性高等特点. Retrofit源码更是经典的设计模式教程,笔者已在之前的文章中分享过自己的一些体会,有兴趣的话可点击以下链接了解:<Retrofit源码设计模式解析(上)>.<Retrofit源码设计模式解析(下)> 但在具体业务场景下,比如涉及到多种网络请求(GET/PU

XDroidRequest网络请求框架,新开源

XDroidRequest 是一款网络请求框架,它的功能也许会适合你.这是本项目的第三版了,前两版由于扩展性问题一直不满意,思考来 思考去还是觉得Google的Volley的扩展性最强,于是借鉴了Volley的责任链模式,所以有了这个第三版. Provide 1 适配 Android 6.0 ,不再使用HttpClient相关API 2 一行代码发送请求,提供多种回调函数供选择, 3 支持8种网络请求方式 GET,POST,PUT,DELETE,HEAD,OPTIONS,TRACE,PATCH

Android网络请求框架AsyncHttpClient实例详解(配合JSON解析调用接口)

最近做项目要求使用到网络,想来想去选择了AsyncHttpClient框架开进行APP开发.在这里把我工作期间遇到的问题以及对AsyncHttpClient的使用经验做出相应总结,希望能对您的学习有所帮助. 首先按照惯例先来简单了解一些AsyncHttpClient网络框架的一些知识. 1.简介 Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnect,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使用android-a

基于AFNetWorking搭建APP的网络请求框架[iOS]

自从AFNetWorking(下文简称AFN)更新2.0版本之后,AFN的许多的问题得到的有效的解决,写法也得到了完善.前期主流的第三方网络类库 ASI作者宣布不再维护,国内大多数的主流APP都逐步接受并开始采用AFN.出于各自公司项目的不同需要,大家都会在AFN的基础上加一层不尽相同的封 装.很多新APP在选择方式时也会非常纠结.如何封装才可以让AFN更有效率更方便的应用于项目呢,对于这个问题,各人有各人的看法.基于做过以及读过的 几个项目,也来谈一下如何搭建一个APP的网络请求框架.由于本人

Android应用中网络请求库Volley的使用

接上文,这次来说一下如何使用Volley,会给出一些范例,和原理 Volley使用 StringRequest // 初始化一个请求队列,RequestQueue是volley库的类 RequestQueue queue = Volley.newRequestQueue(this); String url ="http://www.baidu.com"; //定义一个字符串型请求队列,需要传递4个参数分别是:url, 请求的方式(get, post..),响应成功的处理函数匿名对象,

Github 上Top1的Android 异步网络请求框架

今天给大家分享一个github上Top1的Android异步网络请求框架的使用方法,我给大家分享一个它的基本用法. 先来一个简单的get请求 AsyncHttpClient client = new AsyncHttpClient(); client.get("http://www.google.com", new AsyncHttpResponseHandler() { @Override public void onStart() { // called before reques

App 组件化/模块化之路——如何封装网络请求框架

App 组件化/模块化之路——如何封装网络请求框架 在 App 开发中网络请求是每个开发者必备的开发库,也出现了许多优秀开源的网络请求库.例如 okhttp retrofit android-async-http 这些网络请求库很大程度上提高程序猿的编码效率.但是随着业务的发展,App 变得越来越大,我们将这些网络请求库加入到项目中直接使用,对我们业务类的入侵是非常强的.如果要进行业务分离时,这些网络请求代码将是一个阻止我们进一步工作的绊脚石.对开发者来说是非常痛苦的. 因此我们构建的网络请求框