HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。
HttpURLConnection是java的标准类
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient,更多使用 HttpClient 的应用可以参见http://wiki.apache.org/jakarta-httpclient/HttpClientPowered。HttpClient 项目非常活跃,使用的人还是非常多的。目前 HttpClient 版本是在 2005.10.11 发布的 3.0 RC4 。
HttpClient是个很不错的开源框架,封装了访问http的请求头,参数,内容体,响应等等,
HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便,比如重访问的自定义,以及一些高级功能等。
推荐HttpClient!!
URLConnection HTTPClient
Proxies and SOCKS Full support in Netscape browser, appletviewer, and applications (SOCKS: Version 4 only); no additional limitations from security policies.Full support (SOCKS: Version 4 and 5); limited in applets however by security policies; in Netscape can't pick up the settings from the browser.
Authorization Full support for Basic Authorization in Netscape (can use info given by the user for normal accesses outside of the applet); no support in appletviewer or applications.Full support everywhere; however cannot access previously given info from Netscape, thereby possibly requesting the user to enter info (s)he has already given for a previous access. Also, you can add/implement additional authentication mechanisms yourself.
Methods Only has GET and POST.Has HEAD, GET, POST, PUT, DELETE, TRACE and OPTIONS, plus any arbitrary method.
Headers Currently you can only set any request headers if you are doing a POST under Netscape; for GETs and the JDK you can't set any headers. Under Netscape 3.0 you can read headers only if the resource was returned with a Content-length header; if no Content-length header was returned, or under previous versions of Netscape, or using the JDK no headers can be read.Allows any arbitrary headers to be sent and received.
Automatic Redirection Handling Yes.Yes (as allowed by the HTTP/1.1 spec).
Persistent Connections No support currently in JDK; under Netscape uses HTTP/1.0 Keep-Alive's.Supports HTTP/1.0 Keep-Alive's and HTTP/1.1 persistence.
Pipelining of Requests No.Yes.
Can handle protocols other than HTTP Theoretically; however only http is currently implemented.No.
Can do HTTP over SSL (https) Under Netscape, yes. Using Appletviewer or in an application, no.No (not yet).
Source code available No.Yes.
相关推荐
NULL 博文链接:https://xiaowei-qi-epro-com-cn.iteye.com/blog/1973295
在Android应用开发中,进行网络通信是常见的任务,其中两种主要的请求方式是使用`HttpURLConnection`和`HttpClient`。虽然两者都能实现HTTP通信,但它们在功能、使用方式和性能上存在一些区别。 首先,Apache ...
有两种常见的方法:一是使用`java.net.URLConnection`类,二是通过Apache HttpClient库。这篇文章将对比这两种方法,探讨它们的优缺点以及适用场景。 `java.net.URLConnection`是Java标准库中的一个类,可以直接...
【描述】Web Service Tester是一个针对Android 2.0平台的Eclipse工程,它演示了如何使用URLConnection和HttpClient两种方法来执行对WebService的GET和POST请求。这个工具对于开发者来说,是理解和实践网络通信的重要...
HttpClient 4.5版本是该库的一个稳定版本,相较于JDK自带的URLConnection,HttpClient提供了更多的优势和特性,特别适合于复杂的网络应用和爬虫开发。 1. **易用性**:HttpClient提供了丰富的API接口,使得创建HTTP...
3.javanet包下面是基于jdk自带的UrlConnection进行封装的。 前2个工具类支持插件式配置Header、插件式配置httpclient对象,这样就可以方便地自定义header信息、配置ssl、配置proxy等。 第三个虽然支持代理、ssl,...
它弥补了JDK内置的java.net包中URL和URLConnection类在HTTP客户端编程方面的不足,提供了更丰富和灵活的功能。HttpClient组件允许应用程序直接通过HTTP协议访问Web服务器上的资源,这对于RIA(Rich Internet ...
在Java编程语言中,我们可以使用多种方法来实现这一功能,其中URLConnection是Java标准库提供的一种网络通信接口,虽然HttpClient更为流行,但URLConnection在某些场景下依然具有实用性。下面我们将深入探讨...
根据提供的文件内容,我们可以梳理出关于HttpClient入门的相关知识点。 首先,HttpClient是一个开源工具,属于Apache组织,用于处理HTTP请求和响应。它不是一个浏览器,不涉及浏览器的客户端缓存等附加功能,它仅是...
在Android中,我们可以使用`AndroidHttpClient`,它是`HttpClient`的一个优化版本,更适合Android平台。 #### 1.1 配置HttpClient访问HTTPS(不验证证书) ```java // 创建HttpClient实例 HttpClient httpClient =...
在实际应用中,为了简化网络请求,开发者通常会使用第三方库,如Apache HttpClient、OkHttp或Java 7之后内置的HttpURLConnection API,这些库提供了更高级的功能和更好的性能。但是,理解URL和URLConnection的基础...
由于JDK内置的java.net.URL和URLConnection类在功能上可能不足以满足复杂的需求,Commons-HTTPClient 提供了更为丰富和灵活的功能。 HttpClient 支持HTTP 1.0和1.1协议的全部方法,包括GET、POST、PUT、DELETE、...
android与服务器间的通信开发,利用URL,URLConnection,HTTPClient开发
这时,`httpclient`库提供了一种解决方案,允许我们以非标准方式配置客户端,从而忽略证书校验错误。 `httpclient`是一个强大的Java库,用于执行HTTP请求,支持多种协议,包括HTTPS。在`httpclient-4.2.5.jar`这个...
本例子源码展示了如何利用Apache HttpClient库来实现这一功能,同时也对比了另一种常见的网络访问方式——URLConnection。以下是对这两个方法的详细解释。 首先,我们来看`HttpClient`的使用。Apache HttpClient是...
这时,我们可以创建自定义的`URLConnection`子类,或者使用第三方库如Apache HttpClient或OkHttp来增强功能。博客中提到的`WebUrlRequestBuilder.java`文件很可能就是这样一个工具,用于构建和管理网络请求,可能...
### 使用URL和URLConnection进行多线程下载的深入探讨 在现代互联网应用中,高效的数据传输和资源下载成为了提升用户体验的关键因素之一。对于大型文件的下载,传统的单线程下载方式往往无法充分利用网络带宽,尤其...
// 打开连接,URL.openConnection函数会根据URL的类型,返回不同的URLConnection子类的对象 HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection(); // 进行连接 connection.connect();...