HttpClient4.3.6学习过程——1

Stella981
• 阅读 425

    首先先去官网下载所需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>

    HttpClient4.3.6学习过程——1       

     如果没有使用maven也没关系,我们直接去官网下载:http://hc.apache.org/downloads.cgi

    解压之后在 lib 文件夹下有以下 jar包,这就是我们开发所需的核心部件了:

HttpClient4.3.6学习过程——1

      我们在 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中看看发生了什么。

HttpClient4.3.6学习过程——1

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Stella981 Stella981
3年前
Centos7 安装Jenkins (rpm 方式)
首先说明本教程基于jenkins2.183,但是其他版本基本差不多,主要说一下其中比较坑的几点,做一个总结。1.rpm包的下载从官网上下载rpm的速度简直让人不能忍受,所以千万不要去官网下载。推荐去:http://mirrors.jenkinsci.org/status.html(https://www.oschina.net/action
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Easter79 Easter79
3年前
Swift项目兼容Objective
!456.jpg(http://static.oschina.net/uploads/img/201509/13172704_1KcG.jpg"1433497731426906.jpg")本文是投稿文章,作者:一叶(博客(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2F00red
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这