Apache HttpClient功能强大,于http客户端操作有非常丰富的语义的支持。但是要在高并发、大流量的生产环境中健壮地使用好Apache HttpClient,还是要考虑很多场景的,比如使用连接池,使用代理,重试策略等等,这些都需要用各种API做各种繁琐的配置。我在使用过程中也尝试自己再封装一层,但考虑到自己的遇到的场景不多,可能封装的时候考虑不够充分,没有按照最佳实践来做。还是先找找别人封装过的,借鉴学习下。
一轮google下,才发现其实Apache HttpClient 官方就有一个子项目,HC fluent API,提供链式调用风格的API,支持常用的HTTP Method,支持proxy,支持添加Header,支持异步API,如果想做其他个性化配置,也预留了API,让用户使用自己配置的HttpClient。
看下以下两段示例代码感受一下:
- GET 示例
// Execute a GET with timeout settings and return response content as String.
Request.Get("http://somehost/")
.connectTimeout(1000)
.socketTimeout(1000)
.execute(