org.apache.http.conn

## Interface HttpClientConnectionManager

- 所有已知实现类：
    BasicHttpClientConnectionManager ， PoolingHttpClientConnectionManager

      public interface HttpClientConnectionManager

  表示持久客户端连接的管理员。

  HTTP连接管理器的目的是作为新的HTTP连接的工厂，管理持久连接并同步对持久连接的访问，确保只有一个执行线程可以一次访问连接。

  此接口的实现必须是线程安全的。 必须同步访问共享数据，因为可以从多个线程执行此接口的方法。

  从以下版本开始：
    4.3

- - ### 方法摘要

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `closeExpiredConnections()` 关闭池中的所有过期连接。
    `void` | `closeIdleConnections(long idletime, TimeUnit tunit)` 关闭池中的空闲连接。
    `void` | `connect(HttpClientConnection conn, HttpRoute route, int connectTimeout, HttpContext context)` 在直接路由的情况下将底层连接套接字连接到连接目标，或者通过代理（或多个代理）路由时将第一个代理跳转到第一个代理跳转。
    `void` | `releaseConnection(HttpClientConnection conn, Object newState, long validDuration, TimeUnit timeUnit)` 将连接释放给管理员，使其可以由其他用户重新使用。
    `ConnectionRequest` | `requestConnection(HttpRoute route, Object state)` 返回一个新的`ConnectionRequest` ，从中可以获得`HttpClientConnection`或请求可以中止。
    `void` | `routeComplete(HttpClientConnection conn, HttpRoute route, HttpContext context)` 将连接标记为完全建立，并完成所有中间跳。
    `void` | `shutdown()` 关闭此连接管理器并释放分配的资源。
    `void` | `upgrade(HttpClientConnection conn, HttpRoute route, HttpContext context)` 将所有中间代理跳数执行 `CONNECT`方法后，将底层连接套接字升级到TLS / SSL（或其他分层协议）

- - ### 方法详细信息

    - #### requestConnection

          ConnectionRequest requestConnection(HttpRoute route,
                                            Object state)

      返回一个新的`ConnectionRequest` ，从中可以获得`HttpClientConnection`或请求可以中止。

      请注意，新分配的连接可以在关闭状态返回。 该连接的消费者负责通过致电`connect`完全建立到连接目标的路由 ，以便直接连接到目标或第一代理跳，可选地在执行`CONNECT`方法之后调用`upgrade`方法来升级连接中间代理跳，最后呼叫`routeComplete`将路由标记为完全完成。

      参数
        `route` - 请求的连接的HTTP路由。
        `state` - 连接的预期状态或 `null`如果连接不预期携带任何状态。

    - #### releaseConnection

          void releaseConnection(HttpClientConnection conn,
                               Object newState,
                               long validDuration,
                               TimeUnit timeUnit)

      将连接释放给管理员，使其可以由其他用户重新使用。 或者，可以使用`validDuration`和`timeUnit`参数来定义管理员保持连接活动的`validDuration` `timeUnit` 。
      参数
        `conn` - 要发布的受管连接。
        `validDuration` - 此连接有效重用的持续时间。
        `timeUnit` - 时间单位。
      另请参见：
        `closeExpiredConnections()`

    - #### connect

          void connect(HttpClientConnection conn,
                     HttpRoute route,
                     int connectTimeout,
                     HttpContext context)
                       throws IOException

      在直接路由的情况下将底层连接套接字连接到连接目标，或者通过代理（或多个代理）路由时将第一个代理跳转到第一个代理跳转。
      参数
        `conn` - 受管连接。
        `route` - 连接的路由。
        `connectTimeout` - 以毫秒为单位的连接超时。
        `context` - 实际的HTTP上下文。
      异常
        `IOException`

    - #### upgrade

          void upgrade(HttpClientConnection conn,
                     HttpRoute route,
                     HttpContext context)
                       throws IOException

      在将所有中间代理跳数执行 `CONNECT`方法后，将底层连接套接字升级到TLS / SSL（或其他分层协议）
      参数
        `conn` - 受管连接。
        `route` - 连接的路由。
        `context` - 实际的HTTP上下文。
      异常
        `IOException`

    - #### routeComplete

          void routeComplete(HttpClientConnection conn,
                           HttpRoute route,
                           HttpContext context)
                             throws IOException

      将连接标记为完全建立，并完成所有中间跳。
      参数
        `conn` - 受管连接。
        `route` - 连接的路由。
        `context` - 实际的HTTP上下文。
      异常
        `IOException`

    - #### closeIdleConnections

          void closeIdleConnections(long idletime,
                                  TimeUnit tunit)

      关闭池中的空闲连接。

      在参数中给出的时间段中未使用的池中的打开连接将被关闭。 目前分配的连接不受此方法的约束。 时间将以毫秒精度检查

      所有过期的连接也将关闭。

      参数
        `idletime` - 要关闭连接的空闲时间
        `tunit` -为对所述单元 `idletime`
      另请参见：
        `closeExpiredConnections()`

    - #### closeExpiredConnections

          void closeExpiredConnections()

      关闭池中的所有过期连接。

      在连接被释放时定义的时间段中尚未使用的池中的打开连接将被关闭。 目前分配的连接不受此方法的约束。 时间将以毫秒精度检查。

    - #### shutdown

          void shutdown()

      关闭此连接管理器并释放分配的资源。 这包括关闭所有连接，无论它们是否被使用。

Copyright © 1999–2017 The Apache Software Foundation. All rights reserved.

本帮助文档是使用 《谷歌翻译》翻译，请与英文版配合使用 by--QQ:654638585