首先先去官网下载所需jar包 http://hc.apache.org/ 。目前最新版是httpclient4.4(2014-12-17),我使用的是4.3.6版本。官网下是有教程的,但是明显教程很久没更新了,教程下使用了很多过时的类与方法。本文是对教程在实际操作中的补充。
接下来介绍一下我所使用的开发环境:
1:开发工具我使用的 intellij idea 14 和 MyEclipse10,之所以要使用两种IDE工具是为了在后面的实际测试中便于区分。
2:项目使用maven管理。
3:jdk8,tomcat8(MyEclipse10还未能支持到 jdk8 以及 tomcat8,不过是可以使用的,只不过配置的时候找不到jdk8的选项,可以使用 jdk7)
4:使用 spring 框架
5:使用 mongodb 数据库(4,5都不是关键,不用 spring 你直接写 servlet 也可以,用 mysql 都可以)
环境都介绍完了,下面开始第一步,首先我们需要下载,如果你也是使用maven的话,可以直接在 pom.xml 中加入以下代码:
1<!-- httpclient4.3.6 --> 2<dependency> 3 <groupId>org.apache.httpcomponents</groupId> 4 <artifactId>httpclient</artifactId> 5 <version>4.3.6</version> 6</dependency> 7<dependency> 8 <groupId>org.apache.httpcomponents</groupId> 9 <artifactId>httpclient-cache</artifactId> 10 <version>4.3.6</version> 11</dependency> 12<dependency> 13 <groupId>org.apache.httpcomponents</groupId> 14 <artifactId>httpmime</artifactId> 15 <version>4.3.6</version> 16</dependency>
如果没有使用maven也没关系,我们直接去官网下载:http://hc.apache.org/downloads.cgi 。
解压之后在 lib 文件夹下有以下 jar包,这就是我们开发所需的核心部件了:

我们在 idea 14 中新建 spring 项目,新建 controller :
1@RequestMapping(value = "/httpClient", method = RequestMethod.GET) 2public String httpClientGet() { 3 System.out.println("--------------------httpclient GET!"); 4 return "redirect:login.html"; 5} 6 7@RequestMapping(value = "/httpClient", method = RequestMethod.POST) 8public String httpClientPost() { 9 System.out.println("--------------------httpclient POST!"); 10 return "redirect:login.html"; 11}
目前只是测试连接,通过get,post区分请求方式。然后我们启动tomcat。
接下来在 MyEclipse 下新建 Java project ,在 src 包下新建类 TextHttpClient,将上面的 jar 包导入该项目。在main方法里写如下代码:
1 //网上很多教程使用的都是:HttpClient httpClient = new DefaultHttpClient(); 2 //但是httpclient4.3提供了全新的实现类:CloseableHttpClient 3 CloseableHttpClient httpclient = HttpClients.createDefault(); 4 HttpPost httppost = new HttpPost("http://localhost:8080/httpClient.html"); 5 //HttpGet httpget = new HttpGet("http://localhost:8080/httpClient.html"); 6 CloseableHttpResponse response = null; 7 try { 8 response = httpclient.execute(httppost); 9 } catch (Exception e) { 10 // TODO Auto-generated catch block 11 e.printStackTrace(); 12 }finally{ 13 try { 14 response.close(); 15 httpclient.close(); 16 } catch (IOException e){ 17 // TODO Auto-generated catch block 18 e.printStackTrace(); 19 } 20 }
那么启动main方法,我们去idea14中看看发生了什么。

说明我们已经成功的通过 httpclient 发送了 post 请求 ,get请求我就不试了,目前初步连接已经成功,接下来将继续玩 httpclient ,包括带参数传递,修改http请求参数,已经最终实现自定义上传文件……