`
a137268431
  • 浏览: 157777 次
文章分类
社区版块
存档分类
最新评论

HttpClient4.x:Get和Post提交数据

 
阅读更多

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 =newDefaultHttpClient();
02 try{
03 //注:如果参数值为中文的话,提交过去后可能会是乱码
04 HttpGet httpget =new
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());
09 //如果entity是流数据则关闭之
10 EntityUtils.consume(entity);
11 }finally{
12 // When HttpClient instance is no longer needed,
13 // shut down the connection manager to ensure
14 // immediate deallocation of all system resources
15 httpclient.getConnectionManager().shutdown();
16 }

二、Form表单Post提交方式

01 DefaultHttpClient httpclient =newDefaultHttpClient();
02 try{
03 HttpPost httpost =newHttpPost("http://www.xxx.com/x.jsp?");
04 List <NameValuePair> nvps =newArrayList <NameValuePair>();
05 //提交两个参数及值
06 nvps.add(newBasicNameValuePair("age","20"));
07 nvps.add(newBasicNameValuePair("username","张三"));
08 //设置表单提交编码为UTF-8
09 httpost.setEntity(newUrlEncodedFormEntity(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);
14 }finally{
15 // When HttpClient instance is no longer needed,
16 // shut down the connection manager to ensure
17 // immediate deallocation of all system resources
18 httpclient.getConnectionManager().shutdown();
19 }

在提交到的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 to HttpComponents HttpClient 4.x

    在进行迁移之前,首先需要了解HttpClient 3.x和HttpComponents HttpClient 4.x之间的主要区别。HttpClient 3.x是基于早期的Apache Commons HttpClient项目,而HttpComponents HttpClient 4.x则基于更新的...

    httpclient4.x官方范例

    在4.x版本中,HTTPClient进行了重大更新,与之前的3.x版本相比,它引入了更多的功能、优化和改进。本文将深入探讨HTTPClient 4.x的核心特性,并基于提供的"httpclient4.1_examples"示例文件,解析如何使用这个库进行...

    HTTPClient 4.3.X

    1. **基本用法**:如何创建HttpClient实例,发起GET和POST请求,设置请求头,携带参数等。 2. **连接管理**:理解ConnectionManager,如何设置连接池大小,超时时间,复用连接等。 3. **请求执行器**:使用...

    HttpClient实现POST GET和文件下载

    接下来,我们将分别讲解HttpClient如何实现GET和POST请求: 1. GET请求: 使用HttpGet类创建GET请求,指定目标URL。例如: ```java HttpGet httpGet = new HttpGet("http://example.com"); CloseableHttpClient...

    commons-httpclient-3.1jar包

    2. HttpRequest和HttpResponse:分别代表HTTP请求和响应对象,包含了HTTP方法(GET、POST等)、URL、头部信息、实体内容等关键元素。 3. HttpMethodBase:HttpClient 3.1中的基础请求类,可以派生出具体的HTTP方法,...

    org.apache.commons.httpclient-3.1.jar

    《Apache Commons HttpClient 3.1:HTTP客户端编程的基石》 ...然而,需要注意的是,HttpClient 3.1已不再维护,最新的稳定版本为HttpClient 4.x,对于新项目建议使用更现代的版本以获取更好的性能和兼容性。

    httpclient4.3.x及其依赖jar包

    HttpClient 4.3.x是该库的一个重要版本,它提供了丰富的功能和改进,使得开发者能够更方便地与Web服务器进行交互。在本文中,我们将深入探讨HttpClient 4.3.x的核心特性、依赖关系以及如何在实际项目中应用。 **...

    HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件

    GET请求用于获取服务器上的资源,而POST请求则常用于向服务器提交数据,比如表单数据或上传文件。 1. GET请求:HttpClientUtil中的GET方法通常会创建一个HttpGet对象,设置请求的URL,并通过HttpClient的execute...

    httpClient组合包.zip

    httpPost.setEntity(entity); ``` 在这个例子中,我们创建了一个MultipartEntity,添加了一个二进制文件,并将其设置为HttpPost的实体,从而实现了文件的上传。 HttpClient还支持其他的高级特性,如自定义请求头、...

    httpclient.zip

    HttpClient是由Apache软件基金会开发的开源项目,主要用于执行HTTP请求,支持从简单的GET和POST操作到复杂的HTTP协议特性的完整实现。它提供了丰富的API,使得开发者能够灵活地构建和发送HTTP请求,处理响应,并且...

    httpclientDemo(4.x与4以下的版本)例子

    这个"HttpclientDemo(4.x与4以下的版本)"示例显然涵盖了HttpClient在不同版本间的使用方法,特别是4.x版本和4.x之前的版本之间的差异。在本文中,我们将深入探讨HttpClient的基本概念、主要功能以及在不同版本中的...

    httpclient-4.5.2.jar.zip

    HttpClient 4.x系列是Apache基金会开发的一个开源项目,旨在提供一个高效的、高度可定制的HTTP客户端API。4.5.2版本在4.5.1的基础上修复了一些已知问题,增强了性能,并对API进行了微调,以更好地适应现代网络环境。...

    commons-httpclient3.1.jar,commons-codec1.3.jar,commons-logging1.1.1.jar

    HttpClient 3.1是该库的一个旧版本,尽管现在已经被更新的HttpClient 4.x系列取代,但在很多老项目中仍然广泛使用。它允许开发者构建复杂的HTTP请求,比如POST、GET、PUT等,并可以处理各种HTTP响应。 2. **Apache ...

    HttpClient4.x手动释放底层HTTP连接[借鉴].pdf

    HttpClient4.x是Apache提供的一款高效的HTTP客户端库,它提供了许多强大的功能,例如支持GET、POST、PUT、DELETE等请求方法、支持HTTPS、支持Cookie、支持缓存等等。但是,使用HttpClient4.x时需要手动释放底层HTTP...

    HttpClient所需jar包(全) httpClient.4.13jar

    3. `httpmime-4.x.x.jar`: 这个库扩展了HttpClient,支持在HTTP请求中处理MIME类型的数据,比如文件上传。 4. `httpclient-cache-4.x.x.jar`: 提供了HTTP缓存功能,可以提高重复请求的效率。 5. `json-lib-2.x.x.jar...

    HttpClient、乱码解决:实例

    httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); ``` 2. 设置响应解码:在接收响应时,通过设置`HttpEntity`的解码方式,确保正确解析字符集。例如: ```java ...

    httpclient httpclient.jar

    这个库广泛用于从Web服务器获取数据、发送请求、处理响应等任务,尤其在爬虫、API交互、自动化测试等领域有着广泛的应用。在本文中,我们将深入探讨HttpClient的核心概念、使用方法以及如何通过`httpclient.jar`进行...

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    HttpClientUtil 是一个用于发送 HTTP 请求的工具类,主要支持 GET 和 POST 方法。它使用了 Apache HttpClient 库,这是一个强大的 Java 客户端编程工具包,用于处理 HTTP 协议。以下是对类中关键方法和概念的详细...

    MFC的HttpClient的Get和Post方法

    本文将详细讲解如何在MFC中利用HttpClient进行GET和POST操作。 首先,我们需要理解HTTP协议的基本概念。HTTP(超文本传输协议)是一种应用层协议,用于在Web上交换各类数据。GET和POST是HTTP请求中最常见的两种方法...

    HttpClient模拟get,post请求并发送请求参数(json等)

    它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用HttpClient进行HTTP请求操作,以及如何处理JSON数据。 首先,我们需要引入HttpClient的相关依赖...

Global site tag (gtag.js) - Google Analytics