最近用到了HttpClient ,搜集的资料:
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法。
HttpClient简介
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。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 功能介绍
以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。
- 实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
- 支持自动转向
- 支持 HTTPS 协议
- 支持代理服务器等
下面将逐一介绍怎样使用这些功能。首先,我们必须安装好 HttpClient。
HttpClient 基本功能的使用
GET 方法
使用 HttpClient 需要以下 6 个步骤:
1. 创建 HttpClient 的实例
2. 创建某种连接方法的实例,在这里是 GetMethod。在 GetMethod 的构造函数中传入待连接的地址
3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例
4. 读 response
5. 释放连接。无论执行方法是否成功,都必须释放连接
6. 对得到后的内容进行处理
分享到:
相关推荐
1. 添加依赖:首先,需要在Eclipse项目中添加HttpClient的依赖。如果你使用的是Maven项目,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.apache.httpcomponents <artifactId>httpclient <version>...
1. **连接管理**:HttpClient通过HttpConnectionManager接口控制HTTP连接的创建、复用和关闭,有效地管理连接池,避免了频繁建立新连接带来的性能开销。 2. **请求和响应模型**:HttpClient使用HttpRequest和...
例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....
1. 创建HttpClient实例:`CloseableHttpClient httpClient = HttpClients.createDefault();` 2. 构建请求:例如,`HttpGet httpGet = new HttpGet("http://example.com");` 3. 设置请求头:`httpGet.setHeader(...
在这个"HttpClient&SpringMvc.zip"压缩包中,包含了两个主要部分:HttpClient1和SpringMvcServer。HttpClient1可能是HttpClient库的一个示例或者封装,展示了如何使用HttpClient发送GET和POST请求。而...
1. **多线程支持**:HttpClient 4.2.1支持多线程并发请求,可以高效地处理大量并发连接,提升了处理能力。 2. **连接管理**:它提供了连接池管理,允许重用已建立的TCP连接,减少网络延迟,提高整体性能。 3. **...
1. **HTTP方法支持**:HttpClient支持GET、POST、PUT、DELETE等多种HTTP方法,以及HEAD、OPTIONS、TRACE和CONNECT等非常用方法。 2. **连接管理**:HttpClient提供了一种机制来管理HTTP连接,包括连接池...
1. **同步请求**:使用同步方法发送HTTP请求,等待服务器响应。这种模式适用于不关心响应时间,或者主线程需要等待请求完成的情况。 2. **异步请求**:使用异步方法发送HTTP请求,允许其他任务在等待响应时继续执行...
1.commons-codec-1.9.jar 2.commons-logging-1.2.jar 3.fluent-hc-4.5.jar 4.httpclient-4.5.jar 5.httpclient-cache-4.5.jar 6.httpclient-win-4.5.jar 7.httpcore-4.4.1.jar 8.httpmime-4.5.jar 9.jna-4.1.0.jar ...
1. **导入必要的库**: 包含在压缩包中的jar文件可能是HttpClient库和其他依赖,如`httpclient.jar`, `httpcore.jar`, `httpmime.jar`等。确保这些库已添加到你的项目类路径中,以便能够使用HttpClient。 2. **创建...
1. 引入Apache HttpClient库: 在你的项目中,确保已经添加了Apache HttpClient的依赖。例如,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.httpcomponents ...
1. **导入依赖**:将Apache Commons HttpClient相关的JAR文件添加到项目的类路径中。 2. **创建HttpClient实例**:根据项目需求初始化HttpClient对象,可以设置连接参数、重试策略等。 3. **构建HttpGet/HttpPost...
1. **实例化 HttpClient 对象**:首先,你需要创建一个 `HttpClient` 类的实例,例如 `HttpClient client;` 2. **设置服务器信息**:调用 `client.begin()` 函数,传入你要访问的服务器地址和端口号,如 `client....
1. **初始化HttpClient**: 创建HttpClient实例是使用HttpClient的第一步。通常,我们会创建一个`CloseableHttpClient`对象,这可以通过`HttpClientBuilder`或者`HttpAsyncClientBuilder`来实现。例如: ```java ...
1. **创建HttpClient实例**:首先,需要创建一个HttpClient实例,可以设置连接超时、重试策略等参数。 2. **选择HttpMethod**:根据实际需求选择合适的HttpMethod,比如使用GetMethod或PostMethod。 3. **设置请求...
赠送jar包:httpclient-4.2.5.jar; 赠送原API文档:httpclient-4.2.5-javadoc.jar; 赠送源代码:httpclient-4.2.5-sources.jar; 赠送Maven依赖信息文件:httpclient-4.2.5.pom; 包含翻译后的API文档:httpclient...
1. `httpclient-4.13.jar`: 这是HttpClient的核心库,包含了执行HTTP请求的主要类和接口。 2. `httpcore-4.x.x.jar`: 这是HttpClient的基础组件,提供了网络通信的基本功能,如套接字连接和输入/输出流处理。 3. `...
1. `commons-beanutils-1.8.0.jar`: Apache Commons BeanUtils库提供了对Java Beans属性的简单、灵活的访问方法。在HttpClient中,虽然它主要用于处理Java对象的属性,但也能辅助处理HTTP请求或响应中的数据转换。 ...
赠送jar包:httpclient-4.5.6.jar; 赠送原API文档:httpclient-4.5.6-javadoc.jar; 赠送源代码:httpclient-4.5.6-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.6.pom; 包含翻译后的API文档:httpclient...
1. **版本兼容性**:HttpClient有多个版本,不同版本间的API可能存在差异,使用时需根据项目需求选择合适的版本。 2. **资源管理**:由于HttpClient涉及到网络连接和线程,因此需要正确管理和关闭资源,避免内存...