Apache HttpClient 4.5 长连接池及 Fluent API 介绍

Apache HttpClient 4.5 长连接池及 Fluent API 介绍

最近的项目中用到了 Apache HttpComponents 项目中 HttpClient 4.5 长连接池的功能,再研究官方标准写法的同时,突然看到了Apache HttpClient Fluent API,相比之前 HttpClient 的传统书写方式,Fluent API 方便了很多。

在介绍之前先准备一下实例代码中用到的工具类,工具类中添加了 HttpClient 连接的创建方法和构建表单方式的 Http 实体内容的方法:

如果没有 HTTP 代理、自定义 HTTP 头、自定义 HTTP Cookies、HTTP 访问验证这些东西的话,HttpClient 的长连接的实现是非常简便的。HttpClient 的代码普遍使用了类似工厂模式的设计模式,代码可读性不错。下面就讲讲 Fluent API 的用法。

先提供一个没有 Fluent API 的 Http Post 的写法:

多亏了 Java 1.7 的 try-with-resource 语法,让这段代码可以也可以写得非常短,但里面嵌套了两层的 try 块。
另外来看看 Fluent API 的链式写法:

使用 Fluent API 后实际可以一行代码搞定这个 HttpPost 请求。


另外来段非 Fluent API 下 Http 连接池的 POST 写法:

Fluent API 下 Http 连接池的POST 写法:

Fluent API 下也是两步搞定,不过这一块跟非连接池下的代码很类似,这也说明了 HttpClient 的封装非常不错。

总结,本文主要是为了备注一下 HttpClient 长连接的写法和 Fluent API 的用途,见解非常微浅,请大家见谅。

还有 Fluent API 跟 Spring RestTemplate API 很相似,在不使用 Http 连接池的情况下,可能 Spring RestTemplate API 更实惠。

write by chunlin.qiu


来源:软件开发随心记

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年5月2日
下一篇 2018年5月2日

相关推荐