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出品,值得信赖。
------