当前位置:首页 > Web开发 > 正文

Volley的底层在针对android2.3以下系统使用httpclicent

2024-03-31 Web开发

一、HttpClient与HttpURLConnection,URLConnection

  HttpURLConnection担任URLConnection,底层socket,最原始通信,使用 HttpURLConnection 倡议 HTTP 请求最大的长处是不需要引入特别的依赖。但无法供给特别的成果,如cookie,登录,同时,也缺乏连接池打点、域名机械控制等特性撑持。

HttpClient是apache的一个项目,封装了很多底层细节。Apache HttpComponents HttpClient 的前身是 Apache Commons HttpClient, 但是 Apache Commons HttpClient 已经遏制开发,如果你还在使用它,请切换到 Apache HttpComponents HttpClient 上来。HttpClient对比传统JDK自带的URLConnection,增加了易用性和灵活性,它不只使客户端发送HTTP请求变得容易,而且也便利了开发人员测试接口(基于Http协议的),即提高了开发的效率,也便利提高代码的健壮性。

JDK 自带的 HttpURLConnection 标准库; Apache HttpComponents HttpClient, 以及基于该库的 wrapper, 如 Unirest. 非基于 Apache HttpComponents HttpClient, 大量重写应用层代码的 HTTP client 组件库,范例代表是 OkHttp. HttpURLConnectio。

二、OKHttp  

  由于当前 Apache HttpComponents HttpClient 版本并不撑持 HTTP/2, 而 HTTP/2 对付移动客户端而言,无论是从握手延迟、响应延迟,还是资源开销看都有相当吸引力。因此这就给了高条理封装且撑持 HTTP/2 的 http client lib 足够的保留空间。此中最范例的要数OkHttp。

OkHttp 接口设计友好,撑持 HTTP/2,并且在弱网和无网环境下有自动检测和恢复机制,因此,是当前 Android APP 开发中使用最广泛的 HTTP clilent lib 之一。

另一方面,OkHttp 供给的接口与 Java 9 中 HttpClint 接口对照类似 (严格讲,应该是 Java 9 借鉴了 OkHttp 等开源库的接口设计?),因此,对付喜欢减少依赖,钟情于原生标准库的开发者来说,在 Java 11 中,从 OkHttp 切换到标准库是相对容易的。因此,以 OkHttp 为代表的 http 库以后的使用场景可能会被蚕食一部分。

三、Unirest

  Unirest一款轻量级的HTTP客户端库。撑持多种语言,通过Mashape构建和维护。是一个对照少见的类库,它是对httpclient4的一层封装,挪用方法跟okhttp差不久不多。unirest从它的名字,可以看得出,专门为了rest处事挪用而生的。它的一大特点是供给了,多种语言同样的挪用语义。node/python/java/c#/ruby/oc这些常用语言都有名为unirest的库,挪用语义都大同小异。另一大特点是直接集成了对json序列化和反序列化的撑持,可以对json功效直接解析出东西或者是返回可操纵的json东西。可以参考https://www.cnblogs.com/zhangshihai1232/articles/6062507.html

四、Volley
  Volley是google在2013 io大会上推出的网络通信框架,出格适合措置惩罚惩罚数据量小,,通信频繁的网络操纵。长处是内部封装了异步线程,可直接在主线程请求网络,并措置惩罚惩罚返回的功效。同时可以打消请求,容易扩展。错误谬误是:面对大数据量的请求,好比下载表示糟糕,不撑持https。Volley的底层在针对android2.3以下系统使用httpclicent,在android2.3以上给与HttpUrlConnection请求网络。可以参考https://blog.csdn.net/guolin_blog/article/details/17482095

五、Xutils

Xutils是前几年对照火得一个开源框架,Xutils包罗了很多实用的工具类,撑持大文件上传,且有更全面的http请求协议撑持,拥有灵活的Orm,撑持事件注解且不受代码混淆影响。Xutils刚问世的时候真是很多屌丝措施猿的福利啊,集成了这么多成果强大的模块,大家公然都爱不释手,但是跟着Android版本的升级和人们开发软件思想的改变,Xutils也袒露出了很多问题,此刻用Xutils的已经不是特另外多了,如果想使用的话,保举使用对照新的Xutils3。主要用于android,可以参考https://blog.csdn.net/QPC908694753/article/details/77142124。

六、Retrofit 

  Retrofit 是一个用于 Android 和 Java 平台的类型安适的网络请求框架。Retrofit 通过将 API 抽象成 Java 接口而让我们连接到 REST web 处事变得很轻松。和OkHttp同样出自Square公司,Retrofit内部依赖于OkHttp,但是成果上做了更多的扩展,好比返回功效的转换成果,可以直接对返回数据进行措置惩罚惩罚。可以参考https://juejin.im/post/5c0fbcf6518825642650b875 及https://www.jianshu.com/p/d7f0d9101b32


参考

https://juejin.im/post/5bae03b25188255c5442b66f

https://www.cnblogs.com/sharpest/p/7831350.html

https://blog.csdn.net/langtop/article/details/77972855

https://blog.csdn.net/imlsz/article/details/57616083

https://blog.csdn.net/bigbigsman/article/details/90707669

http网络通信框架解读(HttpClient、HttpURLConnection、OKHttp、Unirest、Volley、Xutils、Retrofit )

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/29896.html