《HttpClient官方文档》1.2 HttpClient 接口

    xiaoxiao2024-01-27  158

    1.2. HttpClient 接口

    HttpClient 接口表示最基本的HTTP请求执行要约。它不会对请求执行过程加上约束或一些特定的信息,并且保留连接管理,状态管理,认证和处理重定向的细节到各自的实现中。这会使它更方便的使用额外功能来装饰接口,如响应内容缓存。

    通常来说, HttpClient接口的实现负责处理特定方面的HTTP协议,比如重定向、身份认证处理、对连接的持久性和维持连接存活长短的决策之类的多个处理程序和策略接口实现的门面。 这使得用户能够有选择性的将一些自定义的,基于特定应用的实现来替换默认的。

    ConnectionKeepAliveStrategy keepAliveStrat = new DefaultConnectionKeepAliveStrategy() { @Override public long getKeepAliveDuration( HttpResponse response, HttpContext context) { long keepAlive = super.getKeepAliveDuration(response, context); if (keepAlive == -1) { // Keep connections alive 5 seconds if a keep-alive value // has not be explicitly set by the server keepAlive = 5000; } return keepAlive; } }; CloseableHttpClient httpclient = HttpClients.custom() .setKeepAliveStrategy(keepAliveStrat) .build();

    1.2.1. HttpClient 线程安全

    HttpClient 接口的实现是线程安全的。建议执行多次请求都使用该类的同一个实例。

    1.2.2. HttpClient 资源重分配

    当CloseableHttpClient类的一个实例不再被调用或即将超出连接管理器关联的范围时, 必须通过调用CloseableHttpClient#close()方法来关闭它

    CloseableHttpClient httpclient = HttpClients.createDefault(); try { <...> } finally { httpclient.close(); }

     转载自 并发编程网 - ifeve.com

    相关资源:HttpClient中文官方文档
    最新回复(0)