[置顶] NoHttp和Volley哪个好用

NoHttp和Volley哪个好用

技术交流1群:46523908
技术交流2群:46505645
NoHttp 源码及Demo:https://github.com/Y0LANDA/NoHttp

NoHttp是专门做Android网络请求与下载的框架。

  在群里很多人问我Volley和OkHttp哪个好用?NoHttp和OkHttp哪个好用?
  虽然Android6.0SDK删除了HttpClient的API后,开发中无法使用Volley源码了(仍可使用jar包),但是不可否认的是Volley任然是一个非常优秀的Android框架。今天这篇文章是对NoHttp和Volley的功能做了个简单的对比,以供大家进行选择使用。如果有不对地方,请大家在评论中指正。

网络请求模块

功能模块 NoHttp Volley 说明
请求队列 支持 支持 -
多级别取消请求 支持 支持 取消所有请求、取消指定的几个请求
与Activit联动 支持 支持 Activity结束时取消请求
调试模式 支持 支持 两者都仅要一句话控制是否调试
自定义请求类型 支持 支持 比如FastJson
上传文件 支持 不支持 NoHttp支持上传多个文件、大文件、上传进度等
异步请求 支持 支持 主线程请求,响应后直接更新UI
同步请求 支持 不支持 子线程同步请求
响应码304缓存 支持 支持 有大牛分析了Volley源码,Volley的304缓存模块存在bug
请求优先级 不支持 支持 -
响应码302/303重定向 支持 不支持 NoHttp拥有和浏览器一样的重定向功能,可多级重定向
使用代理请求 支持 不支持 -
自动管理Cookie 支持 不支持 HttpClient使用着的福音,NoHttp弥补了这一点
Https访问 支持 不支持 Volley需要开发者改Volley源码才能支持
打印请求过程 支持 支持 Volley的貌似不怎么友好

下载模块

  • Volley没有下载模块,这里不再对比,说一下NoHttp的特点
  • 请求模块的基本功能下载模块都有
功能模块 描述
下载队列 -
与请求模块共享Cookie -
断点续传 NoHttp同时支持断点续传,省流量
暂停下载 -
取消下载 -
取消所有下载 -
异步下载 -
同步下载 如果开发者需要子线程下载

性能

  性能也许是开发者最关注的,今天对Volley、xUtils、Async-Http、Apache HttpClient、HttpURLConnection几个网络基础库的性能。测试方式POST,访问本机同一个url,用4.0.1模拟器,看正常获取数据后,谁用的时间最少。

  运行后看结果发现:HttpURLConnection平均最快190ms左右,Async-Http和Apache HttpClient差不多450多ms,xUtils则为800多ms,Volley最差900多ms。我在纳闷怎么会这样呢,我再次让每个循环10次看结果,发现排名不变,Volley时间更长,貌似没有Google说的更快啊。
  而NoHttp底层使用HttpURLConnection,花费时间为380ms左右。大家有时间也可以验证下,或许我的方法不对?

NoHttp 源码及Demo:https://github.com/Y0LANDA/NoHttp

你可能感兴趣的:(框架,android,开源,Volley,NoHttp)