HttpClient是一款用Java写的非常好用的基于Http协议的客户端编程工具包。具体举例来讲,用它可以模拟form表单提交数据动作,可以模拟访问网页动作及得到网页源码内容等等,这两点或许是我们在工作中最常用到的。
这里也主要是以介绍模拟form表单提交数据来介绍一下HttpClient,准确地讲主要是4.x版本,因为我发现在日常中,HttpClient的使用都还是使用3.x的版本,而现在HttpClient的官网上,都已经是最新版本4.1.3了,3.x版本在官网不见丝毫踪影,进入到下载页面也见不着3.x版本的下载。
HttpClient对于使用者而言,一个非常大的好处就是它的例子非常丰富,几乎每个功能都有对应的例子代码,这里讲的模拟form表单提交数据也是来源于HttpClient自带的例子。
一、Get提交方式
01
|
DefaultHttpClient
httpclient = new DefaultHttpClient();
|
05
|
HttpGet( "http://www.xxx.com/x.jsp?username=zhangsan&age=20" );
|
06
|
HttpResponse
response = httpclient.execute(httpget);
|
07
|
HttpEntity
entity = response.getEntity();
|
08
|
System.out.println( "Login
form get: " +
response.getStatusLine());
|
10
|
EntityUtils.consume(entity);
|
15
|
httpclient.getConnectionManager().shutdown();
|
二、Form表单Post提交方式
01
|
DefaultHttpClient
httpclient = new DefaultHttpClient();
|
03
|
HttpPost
httpost = new HttpPost( "http://www.xxx.com/x.jsp?" );
|
04
|
List
<NameValuePair> nvps = new ArrayList
<NameValuePair>();
|
06
|
nvps.add( new BasicNameValuePair( "age" , "20" ));
|
07
|
nvps.add( new BasicNameValuePair( "username" , "张三" ));
|
09
|
httpost.setEntity( new UrlEncodedFormEntity(nvps,
HTTP.UTF_8));
|
10
|
HttpResponse
response = httpclient.execute(httpost);
|
11
|
HttpEntity
entity = response.getEntity();
|
12
|
System.out.println( "Login
form get: " +
response.getStatusLine());
|
13
|
EntityUtils.consume(entity);
|
18
|
httpclient.getConnectionManager().shutdown();
|
在提交到的x.jsp中,我们还是像平常获取一个form表单数据那样处理就行了:
String username = request.getParameter("username");
HttpClient官方网址:http://hc.apache.org/
关于HttpClient的例子页面,见:
http://hc.apache.org/httpcomponents-client-ga/examples.html
或者在下载后的目录:
httpcomponents-client-4.1.3_src\httpclient\src\examples 。
目前HttpClient分两部分,一部分是HttpClient,另一部分是HttpCore,两者都要下载下来,上面的例子见:
httpcomponents-client-4.1.3_src\httpclient\src\examples\org\apache\http\examples\client\ClientFormLogin.java
分享到:
相关推荐
在进行迁移之前,首先需要了解HttpClient 3.x和HttpComponents HttpClient 4.x之间的主要区别。HttpClient 3.x是基于早期的Apache Commons HttpClient项目,而HttpComponents HttpClient 4.x则基于更新的...
在4.x版本中,HTTPClient进行了重大更新,与之前的3.x版本相比,它引入了更多的功能、优化和改进。本文将深入探讨HTTPClient 4.x的核心特性,并基于提供的"httpclient4.1_examples"示例文件,解析如何使用这个库进行...
1. **基本用法**:如何创建HttpClient实例,发起GET和POST请求,设置请求头,携带参数等。 2. **连接管理**:理解ConnectionManager,如何设置连接池大小,超时时间,复用连接等。 3. **请求执行器**:使用...
2. HttpRequest和HttpResponse:分别代表HTTP请求和响应对象,包含了HTTP方法(GET、POST等)、URL、头部信息、实体内容等关键元素。 3. HttpMethodBase:HttpClient 3.1中的基础请求类,可以派生出具体的HTTP方法,...
接下来,我们将分别讲解HttpClient如何实现GET和POST请求: 1. GET请求: 使用HttpGet类创建GET请求,指定目标URL。例如: ```java HttpGet httpGet = new HttpGet("http://example.com"); CloseableHttpClient...
《Apache Commons HttpClient 3.1:HTTP客户端编程的基石》 ...然而,需要注意的是,HttpClient 3.1已不再维护,最新的稳定版本为HttpClient 4.x,对于新项目建议使用更现代的版本以获取更好的性能和兼容性。
HttpClient库允许开发者执行各种HTTP方法(如GET、POST、PUT等),处理重定向、认证、cookie管理等复杂网络交互,同时提供了线程安全和高效的连接管理机制。这个库在处理Web服务API、爬虫程序或任何需要与HTTP服务器...
HttpClient 4.3.x是该库的一个重要版本,它提供了丰富的功能和改进,使得开发者能够更方便地与Web服务器进行交互。在本文中,我们将深入探讨HttpClient 4.3.x的核心特性、依赖关系以及如何在实际项目中应用。 **...
GET请求用于获取服务器上的资源,而POST请求则常用于向服务器提交数据,比如表单数据或上传文件。 1. GET请求:HttpClientUtil中的GET方法通常会创建一个HttpGet对象,设置请求的URL,并通过HttpClient的execute...
httpPost.setEntity(entity); ``` 在这个例子中,我们创建了一个MultipartEntity,添加了一个二进制文件,并将其设置为HttpPost的实体,从而实现了文件的上传。 HttpClient还支持其他的高级特性,如自定义请求头、...
HttpClient是由Apache软件基金会开发的开源项目,主要用于执行HTTP请求,支持从简单的GET和POST操作到复杂的HTTP协议特性的完整实现。它提供了丰富的API,使得开发者能够灵活地构建和发送HTTP请求,处理响应,并且...
这个"HttpclientDemo(4.x与4以下的版本)"示例显然涵盖了HttpClient在不同版本间的使用方法,特别是4.x版本和4.x之前的版本之间的差异。在本文中,我们将深入探讨HttpClient的基本概念、主要功能以及在不同版本中的...
HTTPClient 4.5是Apache HttpClient项目的最新稳定版本,它提供了全面的HTTP协议支持,包括标准方法(GET、POST等)以及非标准方法。这个库设计灵活,性能优秀,且易于集成到各种项目中。`httpclient-4.5.jar`包含了...
HttpClient 4.x系列是Apache基金会开发的一个开源项目,旨在提供一个高效的、高度可定制的HTTP客户端API。4.5.2版本在4.5.1的基础上修复了一些已知问题,增强了性能,并对API进行了微调,以更好地适应现代网络环境。...
HttpClient 3.1是该库的一个旧版本,尽管现在已经被更新的HttpClient 4.x系列取代,但在很多老项目中仍然广泛使用。它允许开发者构建复杂的HTTP请求,比如POST、GET、PUT等,并可以处理各种HTTP响应。 2. **Apache ...
HttpClient4.x是Apache提供的一款高效的HTTP客户端库,它提供了许多强大的功能,例如支持GET、POST、PUT、DELETE等请求方法、支持HTTPS、支持Cookie、支持缓存等等。但是,使用HttpClient4.x时需要手动释放底层HTTP...
虽然`commons-httpclient-3.0.jar`是一个经典版本,但随着Java的发展,Apache社区已经推出了更现代的HttpClient 4.x系列,提供了更多改进和优化,如更好的线程安全、更丰富的API以及对HTTP/2的支持。因此,建议在新...
3. `httpmime-4.x.x.jar`: 这个库扩展了HttpClient,支持在HTTP请求中处理MIME类型的数据,比如文件上传。 4. `httpclient-cache-4.x.x.jar`: 提供了HTTP缓存功能,可以提高重复请求的效率。 5. `json-lib-2.x.x.jar...
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); ``` 2. 设置响应解码:在接收响应时,通过设置`HttpEntity`的解码方式,确保正确解析字符集。例如: ```java ...
这个库广泛用于从Web服务器获取数据、发送请求、处理响应等任务,尤其在爬虫、API交互、自动化测试等领域有着广泛的应用。在本文中,我们将深入探讨HttpClient的核心概念、使用方法以及如何通过`httpclient.jar`进行...