框架--NoHttp和OkHttp哪个好用,Volley和NoHttp哪个好用?
NoHttp和OkHttp哪个好用,Volley和NoHttp哪个好用?
NoHttp 源码及Demo托管在Github欢迎大家Star: https://github.com/Y0LANDA/NoHttp
NoHttp是专门做Android网络请求与下载的框架,框架直播视频源码下载地址。
开这篇博客也是不得已,NoHttp和OkHttp哪个好用?Volley和OkHttp哪个好用?NoHttp和Volley哪个好用?随着NoHttp的崛起,问这个问题的人是越来越多了,所以干脆来开一篇博客了。
OkHttp, HttpURLConnection, HttpClient
OkHttp、HttpConnection、HttpClient这三个家伙是对java来说的,三者的api是Java和Android都可以用的(随着Android6.0删除了HttpClient后,Android也不能使用HttpClient封装的框架了)。它们都是在做socket层的事情,做Android的都知道,Android请求网络需要的子线程发起,然后用handler把结果发送到主线程。用这三个家伙必须在子线程请求,还要自己封装参数、请求头、下载、传文件云云。
NoHttp、Volley、AsyncHttp、xUtil
NoHttp、Volley、Async-Http、xUtil的http模块,这几个家伙才是Android专用的,是不能用在Java的,它们不是在socket层做事情,不用去理睬socket,而是在上面三个家伙的基础上衍生的框架。不论传参数,传文件,等都做了不同程度的封装。都可以在主线程直接调用,拿到结果后也可以直接更新UI。
区别
那么最后再来说说前面说的区别。
NoHttp、Volley、Async-Http、xUtil是一个平面的,OkHttp、HttpClient、HttpClient是一个平面的,对比的时候应该是说NoHttp和Volley哪个好用,OkHttp和HttpClient哪个好用。
到底哪个好用?
如果要问NoHttp和Volley哪个好用,我推荐NoHttp,原因是NoHttp封装了:文件下载、断点续传、304缓存、302/303传参数、传文件、请求头、多文件上传、大文件上传、Cookie自动管理等多种功能,这些是Volley而没有,而且使用Volley需要我们去写很多代码做封装,而NoHttp直接可以用,不需再做二次开发,当然NoHttp的架构设计上是很方便开发做自己的封装的。
OkHttp和HttpURLConnection(HttpClient在Android6.0已完全弃用)之间,如果开发者自己封装自己的框架,我推荐OkHttp,这个框架也是Google官方推荐的。理由不在赘述,Google百度一大推。
NoHttp 源码及Demo托管在Github欢迎大家Star: https://github.com/Y0LANDA/NoHttp
-------
作者:严振杰
链接:https://www.zhihu.com/question/41736156/answer/111278791
好吧,我是NoHttp的作者,对于大家说的推广怎么怎么滴,比如在我的CSDN博客写教程啦,我的Github/NoHttp写ReadMe啦,我也建了关于Android QQ群供大家交流,这些都无可厚非吧。至于百度贴吧这个,当时就是提供一个供大家交流的平台,我后来也觉得确实没有必要,让大家不舒服的地方还清大家多多谅解下。总体上可能是因为自己做的确实不够好,在这里也给大家道个歉,sorry。
看到大家的支持了,感谢大家。同时也感谢所有不理解我的人,正是因为你们的指点我才能给大家带来更好的东西。从你们身上学到了很多,也确实成长了不少,以后我会更加努力分享好的内容给大家,希望能继续和大家交流。
NoHttp好像是国内 严振杰写的网络请求框架,google上除了一个基本的使用文档http://www.oschina.net/p/nohttp 基本上找不到完整api和说明文档。
我用使用了NoHttp是因为之前用的Volley不支持session的持久化,所以用了Nohttp,
总体上还是可以的,满足基本需求没问题,但是应该就技术支持上来说,比不了OkHttp。
NoHttp已经做得很不错了.我也是偶然机会看到了NoHttp然后调研了段时间之后在项目中使用了,我直接使用源码依赖,暂且不说 square公司 的那些产品,NoHttp已经足够足够满足日常的需求了,也没有很必要为了逼格去用什么Retrofit,
最重要的一点是,NoHttp的源码写的很清晰,从发起请求到响应回调都很清晰,一看就明了,这里要为作者点个赞,这个作品作者肯定花了很多时间迭代,学习NoHttp的源码还能学到一些其他的干货,比如队列啊,线程同步之类的知识,最后还是那句,你喜欢你就用,不喜欢也别乱抨击别人的作品。
NoHttp的源码在这里:GitHub - Y0LANDA/NoHttp:
支持HTTP/HTTPS, 自动维持Cookie, 异步/同步请求, 大文件/多文件上传, 文件下载; 支持304缓存, 302/303重定向, 支持代理服务器.
二者的区别如下:OkHttp、HttpURLConnection、HttpClient都是Java通用的,并且它们在做Socket相关的事。
而NoHttp、Volley、AsyncHttp是在前面三者的基础上做的封装,支持异步请求,
是只有Android才可以用的(如果有人非说不是,那就要修改不少源码在别的平台才能用)。
而NoHttp同时支持异步和同步,大文件、多文件上传;Cookie的自动管理,实现了和浏览器一样的标准的Cookie协议;还有Http缓存,比如304缓存,NoHttp还提供了几种缓存模式,比如1 缓存使用缓存没缓存才请求网络,2 有网络请求网络没有网络就使用缓存,3 仅仅使用网络,4 仅仅使用缓存等等。支持队列,支持和Activity、Fragment声明周期联动取消请求,支持请求String、Bitmap、Json、JavaBean,可自定义扩展请求类型。
至于发展前景很明了了,
NoHttp专门来做网络请求,不绑架开发者。NoHttp的Jar只有130k左右,没有使用第三方依赖,纯Android原生实现。
NoHttp的底层默认使用的URLConnection,但是Android4.4之后系统不是内置了OkHttp吗?
然后看源码后发现4.4以后的URLConnection使用OkHttp的接口去实现的,
所以NoHttp想当然的就是很不错的选择。
OkHttp还用说吗?大牛团队square出品,值得信赖。
------
框架--NoHttp和OkHttp哪个好用,Volley和NoHttp哪个好用?的更多相关文章
- Asynchttpclient开源框架下载图片和文本,于Volley和Glide开源框架的区别。
AsyncHttpClient是一款比较流行的Android异步网路加载库,在github上的网址是:https://github.com/loopj/android-async-httpAsyncH ...
- 强大的网络通信框架(实现缓存)--第三方开源--volley
Android Volley是Android平台上很好用的第三方开源网络通信框架.使用简答,功能强大. Android Volley的库jar包Volley.ja下载连接地址:Volley下载 下载后 ...
- 【Android - 框架】之OkHttp的使用
OkHttp是一个非常优秀的网络访问框架,当下非常火的Retrofit的底层就是使用OkHttp进行封装的.接下来介绍以下OkHttp的简单使用. 1.导入依赖 在Android Studio中,在M ...
- Android常用网络请求框架Volley Retrofit (okHttp)
Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient.在 Android 5.0 的时候 Google 就不推荐使用 HttpClient ...
- 安卓开发常用网络请求框架OkHttp、Volley、XUtils、Retrofit对比
网络请求框架总结1.xutils 此框架庞大而周全,这个框架可以网络请求,同时可以图片加载,又可以数据存储,又可以 View 注解,使用这种框架很方便,这样会使得你整个项目对它依赖性太强,万一 ...
- OkHttp和Volley对比
OkHttp 物理质量 使用OkHttp需要 okio.jar (80k), okhttp.jar(330k)这2个jar包,总大小差不多400k,加上自己的封装,差不多得410k. 功能介绍 Squ ...
- Android网络框架之Retrofit + RxJava + OkHttp 变化的时代
1.什么是Retrofit框架? 它是Square公司开发的现在非常流行的网络框架,所以我们在导入它的包的时候都可以看到这个公司的名字,目前的版本是2. 特点: 性能好,处理快,使用简单,Retrof ...
- Http标准协议Android网络框架——NoHttp
NoHttp详细文档:http://doc.nohttp.net NoHttp公益测试接口:http://api.nohttp.net 支持与RxJava完美结合.支持一句话切换底层为OkHttp,支 ...
- Android 框架学习之 第一天 okhttp & Retrofit
最近面试,一直被问道新技术新框架,这块是短板,慢慢补吧. 关于框架的学习,分几个步骤 I.框架的使用 II.框架主流使用的版本和Android对应的版本 III.框架的衍生使用比如okhttp就会有R ...
随机推荐
- 通用的web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等)
前言 我们在做web系统中,导出也是很常用的一个功能,如果每一个数据列表都要对应写一个导出的方法不太现实.现在就想设计一个共通的功能来实现这个导出. 需求分析 在开始之前我们先要明白我们要实现怎样一个 ...
- Android 源码下载
一直想尝试android源码的编译,这两天正好海思代码的编译也需要ubuntu环境,于是安装了ubuntu 12.04,安装时选了语言为中文,因此下面很多状态及错误报告都是中文了,另外分配了4G sw ...
- WinRT知识积累1之读xml数据
前述:这个知识是在Windows8.1或WP8.1中运用Linq to xml获取一个xml文件里的数据.(网上也很多类似的知识,可以借鉴参考) 平台:windows8.1 metro 或者WP8.1 ...
- JS日期的获取与加减
1)获取当前日期: var today = new Date(); 2)设定某个日期: var d = new Date("2015/1/08".replace(/-/g,&quo ...
- Divisors
计算小于n的数中,约数个数最多的数,若有多个最输出最小的一个数. http://hihocoder.com/problemset/problem/1187 对于100有 60 = 2 * 2 * 3 ...
- C语言使用cmd命令并获取输出方法
转自http://blog.csdn.net/hxh129/article/details/8000205 C语言使用cmd命令并获取输出方法 在实践中,我们有时候需要用C语言来调用cmd的命令,并得 ...
- js传url中文参数乱码问题
$("#btnKeyWord").click(function () { window.open("/Atraction/Atraction.aspx?keyword=& ...
- OWL,以及XML,RDF
Ontology来源于哲学词汇:存在论(也有翻译成本体论).RDF是一种不错的本体描述方式,我们可以定义根据对现实世界的理解针对某个领域定义词汇来描述这个领域的知识.但RDF与RDF不能定义同义词.反 ...
- 使用HelloCharts绘制柱状图
首先下载依赖库 ,有现成的jar包:hellocharts-library-1.5.8.jar 在需要的布局中直接使用: <lecho.lib.hellocharts.view.ColumnCh ...
- git 添加ssh的方法 push免登陆
在github.com上 建立了一个小项目,可是在每次push 的时候,都要输入用户名和密码,很是麻烦 原因是使用了https方式 push 在termail里边 输入 git remote -v ...