- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HttpUrlConnection与HttpClient详解概念。在Android开发中,AndroidSDK中对HTTP提供了很好的支持,主要包括两种接口。一个是Sun公司提供的库,基于标准Java接口的HttpURLConnection,这个类封装的很少,如果使用高级功能,如重访问/Cookie/Session等就相当不方便。它可以实现简单的基于URL的请求与相应功能。Google在Android Api23及以后的版本中推荐使用HttpURLConnention,在后续版本中逐渐对其进行优化完善。在2.2版本以前,一直存在着一些bug。 比如对一个可读的InputStream调用close方法时,可能会导致连接池失效。通常我们会禁用连接池功能。另一个是Apache公司提供的的HttpClient,它提供了高效的,最新的功能丰富的api,支持Http协议工具包,支持HTTP最新版本和建议,是个很好的开源框架,封装了http的请求,参数,内容体,响应等,拥有众多API,但同时HttpClient的API数量太多,如果不破坏兼容性的情况下想对他进行扩展很麻烦。在API 23 SDK将其去掉了。建议使用HttpURLConnection。以上两种联网方式都支持HTTPS协议、以流的形式进行传输、IPv6、配置超时时间、以及连接池等功能。区别。功能上,HttpClient库要丰富很多,提供了很多工具,封装了http的请求头,参数,内容体,响应,还有一些高级功能,代理、COOKIE、鉴权、压缩、连接池的处理。HttpClient高级功能代码写起来比较复杂,对开发人员的要求会高一些,而HttpURLConnection对大部分工作进行了包装,屏蔽了不需要的细节,适合开发人员直接调用。HttpURLConnection在2.3版本增加了一些HTTPS方面的改进,4.0版本增加一些响应的缓存。HttpUrlConnection直接支持GZIP压缩;HttpClient也支持,但要自己写代码处理。HttpUrlConnection直接支持系统级连接池,即打开的连接不会直接关闭,在一段时间内所有程序可共用;HttpClient当然也能做到,但毕竟不如官方直接系统底层支持好。HttpUrlConnection直接在系统层面做了缓存策略处理(4.0版本以上),加快了重复请求的速度。HttpClient 适用于 web browsers, 他们是可扩展的,并且拥有大量的稳定APIs。但是,在不破坏其兼容性的前提下很难对如此多的APIs做修改。因此,Android 团队对修改优化Apache HTTP Client表现的并不积极。HttpURLConnect 是一个通用的、适合大多数应用的轻量级组件。这个类起步比较晚,很容易在主要API上做稳步的改善。但是HttpURLConnection在在Android 2.2及以下版本上存在一些令人厌烦的bug,尤其是在读取 InputStream时调用 close()方法,就有可能会导致连接池失效了。Android团队未来的工作会将更多的时间放在优化HttpURLConnection上,它的API简单,体积较小,因而非常适用于Android项目。压缩和缓存机制可以有效地减少网络访问的流量,在提升速度和省电方面也起到了较大的作用。如果一个Android应用需要向指定页面发送请求,但该页面并不是一个简单的页面,只有当用户已经登录,而且登录用户的用户名有效时才可访问该页面。如果使用HttpURLConnection来访问这个被保护的页面,那么需要处理的细节就太复杂了。这种情况建议使用HttpClient。Android2.3及以上版本建议选用HttpURLConnection,2.2及以下版本建议选用HttpClient。新的应用都建议使用HttpURLConnection。HttpClient访问网络流程。由于在Android2.2以后版本中已经将HttpClient弃用,所以不在这里详细说明如何使用HttpClient进行网络通信了,下面说一下使用HttpClient发送请求及接收响应的大概步骤:创建HttpClient。创建HttpGet或者HttpPost对象(分别对应get,post方式)。调用HttpGet或者HttpPost的setParams()方法设置请求参数,如果是HttpPost,还可以通过setEntity()方式设置请求参数。调用HttpCLient的excute(HttpUriRquest request)方法发送请求。会返回一个HttpResponse对象。HttpRespsonse的getHeaders(String name)与getAllHeaders()方法获取服务端返回的响应
您可能关注的文档
- 2017-2018年第二学期商学院团委学生会宿管部寝室文化节系列活动策划.docx
- 2017-2018年高考仿真.doc
- 2017—2018年高一第二学期期末质量检测(数学)必修25.doc
- 2017-2018年湖北省重点高中联考协作体高三(下)期中化学试卷.doc
- 2017-2018年吉林省辽源市田家炳高级中学等五校联考高一(上)期末化学试卷.doc
- 2017-2018年七年语文(部编版)第二学期期末复习备考七年级--(有答案).doc
- 2017-2018年人教A版选修2-1-第二章圆锥曲线与方程-章末评估验收.doc
- 2017-2018年述职报告(朱荣辉).doc
- 2017-2018年人教版必修1-第一章-运动描述-章末高效整合-课件(30张).ppt
- 2017-2018年中考备考模拟试题物理.doc
文档评论(0)