org.apache.http.impl.conn

## Class AbstractClientConnAdapter

- java.lang.Object
- - org.apache.http.impl.conn.AbstractClientConnAdapter

- All Implemented Interfaces:
    Closeable ， AutoCloseable ， ConnectionReleaseTrigger ， HttpRoutedConnection ， ManagedClientConnection ， ManagedHttpClientConnection ， HttpClientConnection ， HttpConnection ， HttpInetConnection ， HttpContext
  已知直接子类：
    AbstractPooledConnAdapter

  已过时。
  （4.2）不要使用

      @Deprecated
      public abstract class AbstractClientConnAdapter
      extends Object
      implements ManagedClientConnection, HttpContext

  抽象适配器从`operated`到`managed`客户端连接。 读写方法被委派给包装的连接。 影响连接状态的操作必须由派生类实现。 如果有一个连接状态，查询连接状态的操作将被委托给包装的连接，否则返回默认值。

  该适配器可跟踪可重复使用的通信状态的检查站，以指示`markReusable` ，并通过查询`isMarkedReusable` 。 所有发送和接收操作将自动清除该标记。

  连接释放呼叫被委派给连接管理器，如果有的话。 `abortConnection`将首先清除可重用性标记。 连接管理器应该容忍对释放方法的多次调用。

  从以下版本开始：
    4

- - ### Field Summary

    - ### Fields inherited from interface org.apache.http.protocol.HttpContext

      `RESERVED_PREFIX`

  - ### 构造方法摘要

    构造方法
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractClientConnAdapter(ClientConnectionManager mgr, OperatedClientConnection conn)` 已过时。 创建一个新的连接适配器。

  - ### 方法摘要

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `abortConnection()` 已过时。 释放连接而不选择保持活动。
    `protected void` | `assertNotAborted()` 已过时。 （4.1）使用`assertValid(OperatedClientConnection)`
    `protected void` | `assertValid(OperatedClientConnection wrappedConn)` 已过时。 断言有一个有效的包装连接来委托。
    `void` | `bind(Socket socket)` 已过时。 将此连接绑定到给定的套接字。
    `protected void` | `detach()` 已过时。 从包装的连接中分离此适配器。
    `void` | `flush()` 已过时。
    `Object` | `getAttribute(String id)` 已过时。
    `InetAddress` | `getLocalAddress()` 已过时。
    `int` | `getLocalPort()` 已过时。
    `protected ClientConnectionManager` | `getManager()` 已过时。
    `HttpConnectionMetrics` | `getMetrics()` 已过时。
    `InetAddress` | `getRemoteAddress()` 已过时。
    `int` | `getRemotePort()` 已过时。
    `Socket` | `getSocket()` 已过时。 返回底层socket。
    `int` | `getSocketTimeout()` 已过时。
    `SSLSession` | `getSSLSession()` 已过时。 获取底层连接的SSL会话（如果有）。
    `protected OperatedClientConnection` | `getWrappedConnection()` 已过时。
    `boolean` | `isMarkedReusable()` 已过时。 指示此连接是否处于可重用的通信状态。
    `boolean` | `isOpen()` 已过时。
    `protected boolean` | `isReleased()` 已过时。
    `boolean` | `isResponseAvailable(int timeout)` 已过时。
    `boolean` | `isSecure()` 已过时。 指示此连接是否安全。
    `boolean` | `isStale()` 已过时。
    `void` | `markReusable()` 已过时。 将此连接标记为处于可重用的通信状态。
    `void` | `receiveResponseEntity(HttpResponse response)` 已过时。
    `HttpResponse` | `receiveResponseHeader()` 已过时。
    `void` | `releaseConnection()` 已过时。 释放与keep-alive选项的连接。
    `Object` | `removeAttribute(String id)` 已过时。
    `void` | `sendRequestEntity(HttpEntityEnclosingRequest request)` 已过时。
    `void` | `sendRequestHeader(HttpRequest request)` 已过时。
    `void` | `setAttribute(String id, Object obj)` 已过时。
    `void` | `setIdleDuration(long duration, TimeUnit unit)` 已过时。 设置此连接在重新使用之前可以保持空闲的持续时间。
    `void` | `setSocketTimeout(int timeout)` 已过时。
    `void` | `unmarkReusable()` 已过时。 将此连接标记为不处于可重用状态。

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.http.conn.ManagedClientConnection

      `getRoute, getState, layerProtocol, open, setState, tunnelProxy, tunnelTarget`

    - ### Methods inherited from interface org.apache.http.conn.ManagedHttpClientConnection

      `getId`

    - ### Methods inherited from interface org.apache.http.HttpConnection

      `close, shutdown`

- - ### 构造方法详细信息

    - #### AbstractClientConnAdapter

          protected AbstractClientConnAdapter(ClientConnectionManager mgr,
                                   OperatedClientConnection conn)

      已过时。
      创建一个新的连接适配器。 该适配器最初不是 `marked`作为可重用的。
      参数
        `mgr` - 连接管理器，或 `null`
        `conn` - 连接到wrap，或 `null`

  - ### 方法详细信息

    - #### detach

          protected void detach()

      已过时。
      从包装的连接中分离此适配器。 这个适配器变得没用了。

    - #### getWrappedConnection

          protected OperatedClientConnection getWrappedConnection()

      已过时。

    - #### getManager

          protected ClientConnectionManager getManager()

      已过时。

    - #### assertNotAborted

          @Deprecated
          protected final void assertNotAborted()
                                         throws InterruptedIOException

      已过时。 （4.1）使用`assertValid(OperatedClientConnection)`
      异常
        `InterruptedIOException`

    - #### isReleased

          protected boolean isReleased()

      已过时。
      结果
        释放标志的值
      从以下版本开始：
        4.1

    - #### assertValid

          protected final void assertValid(OperatedClientConnection wrappedConn)
                                    throws ConnectionShutdownException

      已过时。
      断言有一个有效的包装连接来委托。
      异常
        `ConnectionShutdownException` - 如果没有中断连接或连接

    - #### isOpen

          public boolean isOpen()

      已过时。
      Specified by:
        `isOpen`在接口 `HttpConnection`

    - #### isStale

          public boolean isStale()

      已过时。
      Specified by:
        `isStale`在接口 `HttpConnection`

    - #### setSocketTimeout

          public void setSocketTimeout(int timeout)

      已过时。
      Specified by:
        `setSocketTimeout`在接口 `HttpConnection`

    - #### getSocketTimeout

          public int getSocketTimeout()

      已过时。
      Specified by:
        `getSocketTimeout`在接口 `HttpConnection`

    - #### getMetrics

          public HttpConnectionMetrics getMetrics()

      已过时。
      Specified by:
        `getMetrics`在接口 `HttpConnection`

    - #### flush

          public void flush()
                     throws IOException

      已过时。
      Specified by:
        `flush`在接口 `HttpClientConnection`
      异常
        `IOException`

    - #### isResponseAvailable

          public boolean isResponseAvailable(int timeout)
                                      throws IOException

      已过时。
      Specified by:
        `isResponseAvailable`在接口 `HttpClientConnection`
      异常
        `IOException`

    - #### receiveResponseEntity

          public void receiveResponseEntity(HttpResponse response)
                                     throws HttpException,
                                            IOException

      已过时。
      Specified by:
        `receiveResponseEntity`在接口 `HttpClientConnection`
      异常
        `HttpException`
        `IOException`

    - #### receiveResponseHeader

          public HttpResponse receiveResponseHeader()
                                             throws HttpException,
                                                    IOException

      已过时。
      Specified by:
        `receiveResponseHeader`在接口 `HttpClientConnection`
      异常
        `HttpException`
        `IOException`

    - #### sendRequestEntity

          public void sendRequestEntity(HttpEntityEnclosingRequest request)
                                 throws HttpException,
                                        IOException

      已过时。
      Specified by:
        `sendRequestEntity`在接口 `HttpClientConnection`
      异常
        `HttpException`
        `IOException`

    - #### sendRequestHeader

          public void sendRequestHeader(HttpRequest request)
                                 throws HttpException,
                                        IOException

      已过时。
      Specified by:
        `sendRequestHeader`在接口 `HttpClientConnection`
      异常
        `HttpException`
        `IOException`

    - #### getLocalAddress

          public InetAddress getLocalAddress()

      已过时。
      Specified by:
        `getLocalAddress`在接口 `HttpInetConnection`

    - #### getLocalPort

          public int getLocalPort()

      已过时。
      Specified by:
        `getLocalPort`在接口 `HttpInetConnection`

    - #### getRemoteAddress

          public InetAddress getRemoteAddress()

      已过时。
      Specified by:
        `getRemoteAddress`在接口 `HttpInetConnection`

    - #### getRemotePort

          public int getRemotePort()

      已过时。
      Specified by:
        `getRemotePort`在接口 `HttpInetConnection`

    - #### isSecure

          public boolean isSecure()

      已过时。
      说明从界面： `ManagedClientConnection`复制
      指示此连接是否安全。 只有当连接打开时，返回值才被明确定义。 即使连接打开，它也可能会改变。
      Specified by:
        `isSecure`在接口 `HttpRoutedConnection`
      Specified by:
        `isSecure`在接口 `ManagedClientConnection`
      结果
        `true`如果这个连接是安全的， `false`否则

    - #### bind

          public void bind(Socket socket)
                    throws IOException

      已过时。
      描述从接口`ManagedHttpClientConnection`复制
      将此连接绑定到给定的套接字。 如果连接被绑定并且底层套接字连接到远程主机，则该连接被视为已打开。
      Specified by:
        `bind`在接口 `ManagedHttpClientConnection`
      参数
        `socket` - 将连接绑定到的套接字。
      异常
        `IOException`

    - #### getSocket

          public Socket getSocket()

      已过时。
      描述从接口`ManagedHttpClientConnection`复制
      返回底层socket。
      Specified by:
        `getSocket`在接口 `ManagedHttpClientConnection`

    - #### getSSLSession

          public SSLSession getSSLSession()

      已过时。
      描述从接口`ManagedClientConnection`复制
      获取底层连接的SSL会话（如果有）。 如果此连接已打开，并且底层套接字为`SSLSocket` ，则会获取该套接字的SSL会话。 这是一个潜在的阻塞操作。

      注意：底层套接字是否为SSL套接字不一定可以通过`ManagedClientConnection.isSecure()`确定。 普通插座可能被认为是安全的，例如，如果它们连接到同一网段中的已知主机。 另一方面，SSL套接字可能被认为是不安全的，例如根据所选择的加密套件。

      Specified by:
        `getSSLSession`在接口 `HttpRoutedConnection`
      Specified by:
        `getSSLSession`在接口 `ManagedClientConnection`
      Specified by:
        `getSSLSession`在接口 `ManagedHttpClientConnection`
      结果
        底层SSL会话（如果可用） `null`否则

    - #### markReusable

          public void markReusable()

      已过时。
      描述从接口`ManagedClientConnection`复制
      将此连接标记为处于可重用的通信状态。 可重用通信状态的检查点（在不存在流水线）的情况下，是在发送请求之前和收到完整的响应之后。 用于通信时，连接将自动清除检查点。 调用此方法表示已到达下一个检查点。

      可重用的通信状态是必需的，但不足以使连接被重用。 A `route`不匹配，正在关闭的连接或其他情况可能会阻止重用。

      Specified by:
        `markReusable`在接口 `ManagedClientConnection`

    - #### unmarkReusable

          public void unmarkReusable()

      已过时。
      描述从接口`ManagedClientConnection`复制
      将此连接标记为不处于可重用状态。 这可以在释放此连接之前立即使用，以防止其重复使用。 防止重用的原因包括错误条件和`reuse strategy`的评估。

      注：这是没有必要写或从该连接读取数据前来电来访。 通信尝试将自动将状态标记为不可重用。 然后可以使用`markReusable`切换回来。

      Specified by:
        `unmarkReusable`在接口 `ManagedClientConnection`

    - #### isMarkedReusable

          public boolean isMarkedReusable()

      已过时。
      描述从接口`ManagedClientConnection`复制
      指示此连接是否处于可重用的通信状态。 详见`markReusable`和`unmarkReusable` 。
      Specified by:
        `isMarkedReusable`在接口 `ManagedClientConnection`
      结果
        `true`如果此连接被标记为处于可重用的通信状态， `false`否则

    - #### setIdleDuration

          public void setIdleDuration(long duration,
                             TimeUnit unit)

      已过时。
      描述从接口`ManagedClientConnection`复制
      设置此连接在重新使用之前可以保持空闲的持续时间。 如果这段时间过去，连接不应再使用。 在通过此连接发送的每个请求后，必须重置空闲持续时间。 当连接被释放时，经过的时间开始计数，这通常在标题之后（并且任何响应主体（如果存在））被完全消耗。
      Specified by:
        `setIdleDuration`在接口 `ManagedClientConnection`

    - #### releaseConnection

          public void releaseConnection()

      已过时。
      描述从接口`ConnectionReleaseTrigger`复制
      释放与keep-alive选项的连接。 这是一个“优雅”版本，可能导致IO操作用于消耗响应实体的其余部分。 使用`abortConnection`进行硬释放。 连接可以按照持续时间指定重新使用。
      Specified by:
        `releaseConnection`在接口 `ConnectionReleaseTrigger`

    - #### abortConnection

          public void abortConnection()

      已过时。
      说明从接口`ConnectionReleaseTrigger`复制
      释放连接而不选择保持活动。 这是一个“硬”版本，意味着关闭连接。 使用`ConnectionReleaseTrigger.releaseConnection()`发布优惠。
      Specified by:
        `abortConnection`在接口 `ConnectionReleaseTrigger`

    - #### getAttribute

          public Object getAttribute(String id)

      已过时。
      Specified by:
        `getAttribute`在接口 `HttpContext`

    - #### removeAttribute

          public Object removeAttribute(String id)

      已过时。
      Specified by:
        `removeAttribute`在接口 `HttpContext`

    - #### setAttribute

          public void setAttribute(String id,
                          Object obj)

      已过时。
      Specified by:
        `setAttribute`在接口 `HttpContext`

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

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