【HttpClient4.5中文教程】【第一章 :基础】1.2 HttpClient接口
来源:互联网 发布:mac host 生效 编辑:程序博客网 时间:2024/05/19 17:57
更多HttpClient4.5中文教程请查看目录:点击打开链接
===================================================
1.2.HttpClient接口
HttpClient代表HTTP请求执行的最基本约定。它没有强加限制或具体细节给请求执行过程,它保留了连接管理,状态管理,认证,重定向等处理细节的个人实现。使用额外的功能来装饰这个接口是非常容易的,比如设置响应体缓存。HttpClient实现作为特殊目的的处理器或策略接口的门面,负责处理HTTP协议特定的方面,比如重定向处理,认证处理,为连接持久化做决定或者保持持续连接。这使得用户使用自定义的、应用程序特定方面的实现来取代那些默认的实现。
【译者:下面例子使用内部类演示了自定义持续连接的实现】
【译者:这里只是简单演示,后文将会对HttpClient自定义设置做出详细介绍】
- ConnectionKeepAliveStrategy keepAliveStrat = new DefaultConnectionKeepAliveStrategy() {
- @Override
- public long getKeepAliveDuration(HttpResponse response,HttpContext context) {
- long keepAlive = super.getKeepAliveDuration(response, context);
- if (keepAlive == -1) {
- // 如果keep-alive的值内有被服务器明确设置,保持持续连接5秒
- keepAlive = 5000;
- }
- return keepAlive;
- }
- };
- CloseableHttpClient httpclient = HttpClients.custom().setKeepAliveStrategy(keepAliveStrat)
- .build();
ConnectionKeepAliveStrategy keepAliveStrat = new DefaultConnectionKeepAliveStrategy() {@Overridepublic long getKeepAliveDuration(HttpResponse response,HttpContext context) { long keepAlive = super.getKeepAliveDuration(response, context); if (keepAlive == -1) { // 如果keep-alive的值内有被服务器明确设置,保持持续连接5秒 keepAlive = 5000; } return keepAlive; }};CloseableHttpClient httpclient = HttpClients.custom().setKeepAliveStrategy(keepAliveStrat) .build();
1.2.1.HttpClient线程安全
HttpClient实现是线程安全的。对于不同的请求执行,这个类的相同实例是可复用的。【译者:也就是说,一组相关的请求由同一个HttpClient实例实现】
1.2.2.HttpClient资源分配
当一个HttpClient实例不再需要时并且它不在连接管理器之内时,必须通过CloseableHttpClient#close()方法关闭。- CloseableHttpClient httpclient = HttpClients.createDefault();
- try {
- <…>
- } finally {
- httpclient.close();
- }
CloseableHttpClient httpclient = HttpClients.createDefault();try { <...>} finally { httpclient.close();}
====================总结(非翻译)===================
阅读全文
0 0
- 【HttpClient4.5中文教程】【第一章 :基础】1.2 HttpClient接口
- 【HttpClient4.5中文教程】【第一章 :基础】1.2 HttpClient接口
- 【HttpClient4.5中文教程】【第一章 :基础】1.2 HttpClient接口
- 【HttpClient4.5中文教程】【第一章 :基础】1.3 HttpClient执行上下文
- 【HttpClient4.5中文教程】【第一章 :基础】1.3 HttpClient执行上下文
- 【HttpClient4.5中文教程】【第一章 :基础】1.3 HttpClient执行上下文
- HttpClient4.5教程-第一章-基础 1.2-1.8
- 【HttpClient4.5中文教程】【第一章 :基础】1.5 异常处理
- 【HttpClient4.5中文教程】【第一章 :基础】1.5 异常
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(一)
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(二)
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(三)
- 【HttpClient4.5中文教程】【第一章 :基础】1.4 HTTP协议拦截器
- 【HttpClient4.5中文教程】【第一章 :基础】1.6 终止请求,1.7 重定向处理
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(一)
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(二)
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(三)
- 【HttpClient4.5中文教程】【第一章 :基础】1.4 HTTP协议拦截器
- 左神面试算法整理--二叉树前、中、后序遍历
- 离散化思想
- PHP语言基础
- ssh: connect to xxxxxxxxxx port 22: Connection refused
- 学习一个后缀自动机
- 【HttpClient4.5中文教程】【第一章 :基础】1.2 HttpClient接口
- [LeetCode] 155. Min Stack
- 获取当前时间
- hdu 1251 统计难题 字典树裸题
- (hdu3790)最短路径问题(dijkstra算法)
- Zookeeper(一)Zookeeper是什么?
- 安装Ubuntu后要做的事
- dfs NOIP2011] 玛雅游戏
- Java的循环语句