您的位置:首页 > 理论基础 > 计算机网络

HttpClient_入门学习(一)

2018-01-31 15:21 555 查看
HttpClient
是 ApacheJakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协 议的客户端编程工具包(jar包),并且它支持 HTTP 协议最新的版本和建议。

HttpClient主要的功能:

1.实现了所有http方法(get,post,put,delete)等等....

2.
支持自动转向

3.支持代理服务器等

4.支持https协议等

但是,HttpClient并没有眼中的那么好,HttpClient的维护人员并不积极,因为api数量过多,很难在不破坏兼容的情况 下更新迭代,HttpClient的备胎已经出现了,(HttpURLConnect)

谷歌人员给出的原因如下

1.上面我们讲了,因为兼容性性问题

2.HttpURLConnect的api包很小,更适合安卓

3.HttpURLConnect更省流量,

不过我们不能因为过时了就不学习了,既然来了就看完再走把....

我在网上找了案例,和一些资料,为了能够更好的学习........



HttpClient提供了URLBuilder类来简化url的创建
| 修改的过程.......

我们还是来写把,感觉这样的话印象会深刻一点,

1.创建一个maven工程

2.导入依赖

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>


使用builder创建uri代码如下



控制台会输出如下:



系统接收到http请请求的时候,就会进行解析,然后进行响应,然后这个响应就是HTTP
response.HTTP,响应的第一行是协议版本,

然后是状态码以及文本,



输出结果如下



消息头

一个Http请求包含一系列消息头,用来对消息进行描述,比如消息长度,消息类型等,HttpClient提供了获取请求,添加,移除,

枚举消息头等....



推荐的获取指定消息的请求头的方式是使用HeaderIterator



控制台会打印
:



确保底层资源被释放



这里需要说明一下,关闭http内容流跟http响应流的区别在于.前者通过消耗http内容流来保持连接,后者会立即关闭,丢弃

http连接.

当然也有这种情况,这是需要注意的.我们只需要获取响应头的一小部分东西,但是我们需要获取整个内容,并实现链接的重复性代价太大,

我们可以通过关闭响应的方式来关闭内容的输入输出流.



以上代码后,连接变得不可用,所有的资源都被释放.................

HttpClient推荐我们使用,HttpEntity的getContent方法来获取内容,或使用HttpEntity的writeTo方法来消耗掉实体内容,

HtttpClient也提供了EntityUtils类来读取,这个类提供了静态方法可以更容易的读取http内容,当时并不推荐使用,除非网站是可,

信任的,并且内容长度不大,官方给了以下例子........



有些情况下,我们需要持久化数据,为了重复使用,这时我们应该把HttpEntity转换成BufferedHttpClient();



HTML表单
很多应用程序都需要模拟提交表单这个过程,咋们爵个栗子,登陆一个网站或者将数据提交给服务器,,,,,HttpClient就提供了一个
类来帮忙我们实现这一例子,



HttpClient会对我们的编码格式进行编码,编码内容如下

username=zs&password=123

内容分块

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HttpClient sayHello