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哪个好用?的更多相关文章

  1. Asynchttpclient开源框架下载图片和文本,于Volley和Glide开源框架的区别。

    AsyncHttpClient是一款比较流行的Android异步网路加载库,在github上的网址是:https://github.com/loopj/android-async-httpAsyncH ...

  2. 强大的网络通信框架(实现缓存)--第三方开源--volley

    Android Volley是Android平台上很好用的第三方开源网络通信框架.使用简答,功能强大. Android Volley的库jar包Volley.ja下载连接地址:Volley下载 下载后 ...

  3. 【Android - 框架】之OkHttp的使用

    OkHttp是一个非常优秀的网络访问框架,当下非常火的Retrofit的底层就是使用OkHttp进行封装的.接下来介绍以下OkHttp的简单使用. 1.导入依赖 在Android Studio中,在M ...

  4. Android常用网络请求框架Volley Retrofit (okHttp)

    Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient.在 Android 5.0 的时候 Google 就不推荐使用 HttpClient ...

  5. 安卓开发常用网络请求框架OkHttp、Volley、XUtils、Retrofit对比

    网络请求框架总结1.xutils     此框架庞大而周全,这个框架可以网络请求,同时可以图片加载,又可以数据存储,又可以 View 注解,使用这种框架很方便,这样会使得你整个项目对它依赖性太强,万一 ...

  6. OkHttp和Volley对比

    OkHttp 物理质量 使用OkHttp需要 okio.jar (80k), okhttp.jar(330k)这2个jar包,总大小差不多400k,加上自己的封装,差不多得410k. 功能介绍 Squ ...

  7. Android网络框架之Retrofit + RxJava + OkHttp 变化的时代

    1.什么是Retrofit框架? 它是Square公司开发的现在非常流行的网络框架,所以我们在导入它的包的时候都可以看到这个公司的名字,目前的版本是2. 特点: 性能好,处理快,使用简单,Retrof ...

  8. Http标准协议Android网络框架——NoHttp

    NoHttp详细文档:http://doc.nohttp.net NoHttp公益测试接口:http://api.nohttp.net 支持与RxJava完美结合.支持一句话切换底层为OkHttp,支 ...

  9. Android 框架学习之 第一天 okhttp & Retrofit

    最近面试,一直被问道新技术新框架,这块是短板,慢慢补吧. 关于框架的学习,分几个步骤 I.框架的使用 II.框架主流使用的版本和Android对应的版本 III.框架的衍生使用比如okhttp就会有R ...

随机推荐

  1. 配置rc.local开机自启动文件的疑问

    有时我们自己在/etc/rc.d/rc.local里面增加的随机器启动的脚本和指令总是不能自动加载和启动,,机器启动后手动执行脚本又能成功,经常被搞得晕头转向的.最近我经过1天的辛苦测试和查找资料,终 ...

  2. 非常简单的XML解析(SAX解析、pull解析)

    这里只是把解析的数据当日志打出来了 非常简单的xml解析方式 package com.example.demo.service; import java.io.IOException; import ...

  3. Networkcommd V3 新功能之一 拒绝服务攻击防护 ( DOSProtection)

    NetworkComms网络通信框架序言 DOSProtection类能够防御拒绝服务攻击 启用方法: NetworkComms.DOSProtection.Enabled = true; 相关资料:

  4. 用dbforge调试procedure

    工具官网地址:http://www.devart.com/dbforge/mysql/studio/ 对于某些存储过程很多且复杂的SQL的应用,在短时间内要使得所有MySQL存储过程和函数正常运行,那 ...

  5. 记录一次fat32格式U盘不识别问题

    升级了4.1.15内核发现U盘不识别了,考虑到内核编译前的配置是通过localmodconfig完成的,所以大略是缺模块导致. 于是开始查配置,USB控制器,EHCI,mass storeage de ...

  6. HTML5新增video标签及对应属性、API详解

    知识说明: 比不上很牛的前端开发人员,但自始至终明白“万丈高楼平地起”,基础最重要,初学HTML5,稳固基础第一步,把最基本的整理下来,留下自己学习的痕迹.HTML5新增的video标签,将其属性以及 ...

  7. java.lang.ClassNotFoundException: com.*.listener.ConfigInfoReader

    包的问题,删除掉了buildPath的包,再加上一个需要用的,问题搞定...不知道是为什么

  8. 超级链接a中javascript:void(0)弹出另外一个框问题

    转字:http://my.oschina.net/castusz/blog/68186 结果在IE.Firefox.Chrome都是先执行的onclick事件,在项目中我们尽量不要同时使用这两种方式. ...

  9. xcode armv6 armv7 armv7s arm64

    目前ios的指令集有以下几种: armv6 iPhone iPhone2 iPhone3G 第一代和第二代iPod Touch armv7 iPhone4 iPhone4S armv7s iPhone ...

  10. inline-block

    在CSS中,块级对象元素会单独占一行显示,多个block元素会各自新起一行,并且可以设置width,height属性:而内联对象元素前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满 ...