httpclient和httpurlconnection的使用和区别

genggeng genggeng     2023-02-01     247

关键词:

https://www.cnblogs.com/liushuibufu/p/4140913.html

 

  • 功能用法对比

    • 从功能上对比,HttpURLConnection比HttpClient库要丰富很多,提供了很多工具,封装了http的请求头,参数,内容体,响应,还有一些高级功能,代理、COOKIE、鉴权、压缩、连接池的处理。

    • HttpClient高级功能代码写起来比较复杂,对开发人员的要求会高一些,而HttpURLConnection对大部分工作进行了包装,屏蔽了不需要的细节,适合开发人员直接调用。

    • 另外,HttpURLConnection在2.3版本增加了一些HTTPS方面的改进,4.0版本增加一些响应的缓存。

  • 性能对比

    • HttpUrlConnection直接支持GZIP压缩;HttpClient也支持,但要自己写代码处理。

    • HttpUrlConnection直接支持系统级连接池,即打开的连接不会直接关闭,在一段时间内所有程序可共用;HttpClient当然也能做到,但毕竟不如官方直接系统底层支持好。

    • HttpUrlConnection直接在系统层面做了缓存策略处理(4.0版本以上),加快了重复请求的速度。

    • 这篇文章对两者的速度做了一个对比,做法是两个类都使用默认的方法去请求百度的网页内容,测试结果是使用httpurlconnection耗时47ms,使用httpclient耗时641ms。httpURLConnection在速度有比较明显的优势,当然这跟压缩内容和缓存都有直接关系。

  • 未来发展

    • 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和httpurlconnection的区别

...:在JDK的java.net包中已经提供了访问HTTP协议的基本功能:HttpURLConnection。但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。在Android中,androidSDK中集成了Apache的HttpClient模块,用来提供高效的、最新的、功能... 查看详情

使用 HTTPClient 或 HttpUrlConnection? [关闭]

】使用HTTPClient或HttpUrlConnection?[关闭]【英文标题】:UseHTTPClientorHttpUrlConnection?[closed]【发布时间】:2009-11-1600:59:55【问题描述】:我们正在JRE1.4上实现一个REST客户端。对于客户端REST框架来说,似乎有两个不错的选择是HttpClient... 查看详情

httpclient和httpurlconnection的区别

参考技术AHttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序。虽然HttpURLConnection的API提供的比较简单,但是同时这也使得我们可以更加容易地去使用和扩展它。但是早期的版本BU... 查看详情

httpclient和httpurlconnection的区别

...,封装了访问http的请求头,参数,内容体,响应等等,HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便HttpClient实际上是对Java提供方法的一些封装,在HttpURLConnection中的输入输出流操作,在这个接口中被统一... 查看详情

httpurlconnection详解

...he的jar才行,所以,就有很多开发者放弃使用HttpClient了,HttpURLConnection毕竟是标准Java接口(java.net),适配性还是很强的。(Android6.0之后放弃使用HttpClient,用HttpURLConnection代替HttpClient)网络请求需要的参数:1、url请求的地址,这个... 查看详情

androidhttp访问的两种方式(httpclient和httpurlconnection)(代码片段)

...接收数据。Android中包括两种方式来进行HTTP的请求:HttpURLConnection和HttpClient。URL请求最常用的两种方式:GET请求与POST请求。一般来说,Get是向服务器索取数据的一种请求,而Post是向服务器提交数据的一种请求。二... 查看详情

http基础与android之(安卓与服务器通信)——使用httpclient和httpurlconnection

查看原文:http://blog.csdn.net/sinat_29912455/article/details/511222861客户端连接服务器实现内部的原理GET方式和POST方式的差别HTTP返回请求数据的三种方式2使用HTTP协议访问网络3HttpCient简单来说用HttpClient发送请求接收响应都很简单只需要... 查看详情

如何从 HttpClient 切换到 HttpUrlConnection?

】如何从HttpClient切换到HttpUrlConnection?【英文标题】:HowtoswitchfromHttpClienttoHttpUrlConnection?【发布时间】:2015-01-0923:53:30【问题描述】:我正在创建一个Android应用程序,并通过HttpClient将数据从Android应用程序发送到servlet。我使用Ht... 查看详情

httpurlconnection与httpclient浅析aaaa(代码片段)

...va应用程序需要直接通过HTTP协议来访问网络资源。在介绍HttpURLConnection前,我们还是再来说一下URL请求最常用的两种方式:GET请求与POST请求。GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据... 查看详情

java示例代码_从HttpURLConnection切换到HttpClient

java示例代码_从HttpURLConnection切换到HttpClient 查看详情

okhttp使用介绍

为什么需要一个HTTP库Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。关于HttpURLConnection和HttpClient的选择>>官方博客尽管Google在大部分安卓版本中推荐使用HttpURLConnection,但是这个类相比HttpClient实在是太难用,太弱... 查看详情

(转)httpurlconnection与httpclient区别(代码片段)

转自:HttpURLConnection与HttpClient区别/性能测试对比-尚码园HttpURLConnection与HttpClient随笔  目前在工做中遇到的须要各类对接接口的工做,须要用到HTTP的知识,工做完成后想要作一些笔记,原本知识打算把本身写的... 查看详情

如何使用 HttpURLConnection 发布数据

】如何使用HttpURLConnection发布数据【英文标题】:HowtopostdatausingHttpURLConnection【发布时间】:2016-04-1100:56:08【问题描述】:我从API23更改为22,因为他们说httpclient不可用。当我切换到API22时,我遇到了HttpClient、HttpPost和NameValuePair的... 查看详情

okhttp基本使用

  OkHttp介绍    Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient,HttpURLConnection相对来说比HttpClient难用,google自从2.3版本之后一直推荐使用HttpURLConnection,并且在6.0版本的sdk中直接删掉了HttpClient类。    但是,... 查看详情

简单的okhttp使用介绍

Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。关于HttpURLConnection和HttpClient的选择>>官方博客尽管Google在大部分安卓版本中推荐使用HttpURLConnection,但是这个类相比HttpClient实在是太难用,太弱爆了。OkHttp是一个相... 查看详情

httpurlconnection发送getpost请求

...pclient。了解到Google在Android6.0后移除了HttpClient,推荐使用HttpUrlConnection实现http请求,并且许多其他第三方网络请求框架都是改 查看详情

httpurlconnection与httpclient随笔

  目前在工作中遇到的需要各种对接接口的工作,需要用到HTTP的知识,工作完成后想要做一些笔记,本来知识打算把自己写的代码粘贴上来就好了,但是偶然发现一篇博文对这些知识的总结非常到位,自认无法写的这么好,... 查看详情

okhttp代码

https://github.com/square/okhttp/wiki/Recipes中文社区http://www.cnblogs.com/ct2011/p/3997368.htmlAndroid系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。关于HttpURLConnection和HttpClient的选择>>官方博客 查看详情