NoHttp和OkHttp哪一个好用,Volley和NoHttp哪一个好用?java
NoHttp 源码及Demo托管在Github欢迎你们Star: https://github.com/Y0LANDA/NoHttpgit
NoHttp是专门作Android网络请求与下载的框架,框架直播视频源码下载地址。github
开这篇博客也是不得已,NoHttp和OkHttp哪一个好用?Volley和OkHttp哪一个好用?NoHttp和Volley哪一个好用?随着NoHttp的崛起,问这个问题的人是愈来愈多了,因此干脆来开一篇博客了。api
OkHttp、HttpConnection、HttpClient这三个家伙是对java来讲的,三者的api是Java和Android均可以用的(随着Android6.0删除了HttpClient后,Android也不能使用HttpClient封装的框架了)。它们都是在作socket层的事情,作Android的都知道,Android请求网络须要的子线程发起,而后用handler把结果发送到主线程。用这三个家伙必须在子线程请求,还要本身封装参数、请求头、下载、传文件云云。浏览器
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百度一大推。session
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出品,值得信赖。
------