首先先去官网下载所需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 中加入以下代码:
<!-- httpclient4.3.6 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-cache</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.6</version>
</dependency>
如果没有使用maven也没关系,我们直接去官网下载:http://hc.apache.org/downloads.cgi 。
解压之后在 lib 文件夹下有以下 jar包,这就是我们开发所需的核心部件了:
我们在 idea 14 中新建 spring 项目,新建 controller :
@RequestMapping(value = "/httpClient", method = RequestMethod.GET)
public String httpClientGet() {
System.out.println("--------------------httpclient GET!");
return "redirect:login.html";
}
@RequestMapping(value = "/httpClient", method = RequestMethod.POST)
public String httpClientPost() {
System.out.println("--------------------httpclient POST!");
return "redirect:login.html";
}
目前只是测试连接,通过get,post区分请求方式。然后我们启动tomcat。
接下来在 MyEclipse 下新建 Java project ,在 src 包下新建类 TextHttpClient,将上面的 jar 包导入该项目。在main方法里写如下代码:
//网上很多教程使用的都是:HttpClient httpClient = new DefaultHttpClient();
//但是httpclient4.3提供了全新的实现类:CloseableHttpClient
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://localhost:8080/httpClient.html");
//HttpGet httpget = new HttpGet("http://localhost:8080/httpClient.html");
CloseableHttpResponse response = null;
try {
response = httpclient.execute(httppost);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
response.close();
httpclient.close();
} catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
那么启动main方法,我们去idea14中看看发生了什么。
说明我们已经成功的通过 httpclient 发送了 post 请求 ,get请求我就不试了,目前初步连接已经成功,接下来将继续玩 httpclient ,包括带参数传递,修改http请求参数,已经最终实现自定义上传文件……