博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HttpClient4.5中文教程】【第一章 :基础】1.2 HttpClient接口
阅读量:4131 次
发布时间:2019-05-25

本文共 1205 字,大约阅读时间需要 4 分钟。

原文:http://blog.csdn.net/u011179993/article/details/47251909

更多HttpClient4.5中文教程请查看目录:

===================================================

1.2.HttpClient接口

HttpClient代表HTTP请求执行的最基本约定。它没有强加限制或具体细节给请求执行过程,它保留了连接管理,状态管理,认证,重定向等处理细节的个人实现。使用额外的功能来装饰这个接口是非常容易的,比如设置响应体缓存。
HttpClient实现作为特殊目的的处理器或策略接口的门面,负责处理HTTP协议特定的方面,比如重定向处理,认证处理,为连接持久化做决定或者保持持续连接。这使得用户使用自定义的、应用程序特定方面的实现来取代那些默认的实现。
【译者:下面例子使用内部类演示了自定义持续连接的实现】
【译者:这里只是简单演示,后文将会对HttpClient自定义设置做出详细介绍】
[java] 
  1. ConnectionKeepAliveStrategy keepAliveStrat = new DefaultConnectionKeepAliveStrategy() {  
  2. @Override  
  3. public long getKeepAliveDuration(HttpResponse response,HttpContext context) {  
  4.        long keepAlive = super.getKeepAliveDuration(response, context);  
  5.        if (keepAlive == -1) {  
  6.         // 如果keep-alive的值内有被服务器明确设置,保持持续连接5秒  
  7.        keepAlive = 5000;  
  8.     }  
  9.     return keepAlive;  
  10.   }  
  11. };  
  12. CloseableHttpClient httpclient = HttpClients.custom().setKeepAliveStrategy(keepAliveStrat)  
  13.                                                                         .build();  


1.2.1.HttpClient线程安全

HttpClient实现是线程安全的。对于不同的请求执行,这个类的相同实例是可复用的。

【译者:也就是说,一组相关的请求由同一个HttpClient实例实现】

1.2.2.HttpClient资源分配

当一个HttpClient实例不再需要时并且它不在连接管理器之内时,必须通过CloseableHttpClient#close()方法关闭。
[java] 
  1. CloseableHttpClient httpclient = HttpClients.createDefault();  
  2. try {  
  3.     <...>  
  4. finally {  
  5.     httpclient.close();  
  6. }  
你可能感兴趣的文章
DBCP——开源组件 的使用
查看>>
抓包工具
查看>>
海量数据相似度计算之simhash和海明距离
查看>>
DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
查看>>
DeepLearning tutorial(6)易用的深度学习框架Keras简介
查看>>
DeepLearning tutorial(7)深度学习框架Keras的使用-进阶
查看>>
流形学习-高维数据的降维与可视化
查看>>
Python-OpenCV人脸检测(代码)
查看>>
python+opencv之视频人脸识别
查看>>
人脸识别(OpenCV+Python)
查看>>
6个强大的AngularJS扩展应用
查看>>
网站用户登录系统设计——jsGen实现版
查看>>
第三方SDK:讯飞语音听写
查看>>
第三方SDK:JPush SDK Eclipse
查看>>
第三方开源库:imageLoader的使用
查看>>
自定义控件:飞入飞出的效果
查看>>
自定义控件:动态获取控件的高
查看>>
第三方开源库:nineoldandroid:ValueAnimator 动态设置textview的高
查看>>
第三方SDK:百度地图SDK的使用
查看>>
Android studio_迁移Eclipse项目到Android studio
查看>>