Class DefaultHttpClientConnectionOperator

java.lang.Object
org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator
All Implemented Interfaces:
HttpClientConnectionOperator

@Internal @Contract(threading=STATELESS) public class DefaultHttpClientConnectionOperator extends Object implements HttpClientConnectionOperator
Default implementation of HttpClientConnectionOperator used as default in Http client, when no instance provided by user to BasicHttpClientConnectionManager or PoolingHttpClientConnectionManager constructor.
Since:
4.4
  • Field Details

    • LOG

      private static final org.slf4j.Logger LOG
    • SUPPORTS_KEEPALIVE_OPTIONS

      private static final boolean SUPPORTS_KEEPALIVE_OPTIONS
    • PLAIN_SOCKET_FACTORY

      static final DetachedSocketFactory PLAIN_SOCKET_FACTORY
    • detachedSocketFactory

      private final DetachedSocketFactory detachedSocketFactory
    • unixDomainSocketFactory

      private final UnixDomainSocketFactory unixDomainSocketFactory
    • tlsSocketStrategyLookup

      private final org.apache.hc.core5.http.config.Lookup<TlsSocketStrategy> tlsSocketStrategyLookup
    • schemePortResolver

      private final SchemePortResolver schemePortResolver
    • dnsResolver

      private final DnsResolver dnsResolver
  • Constructor Details

  • Method Details

    • adapt

      @Deprecated static org.apache.hc.core5.http.config.Lookup<TlsSocketStrategy> adapt(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> lookup)
      Deprecated.
      Provided for backward compatibility
    • connect

      public void connect(ManagedHttpClientConnection conn, org.apache.hc.core5.http.HttpHost host, InetSocketAddress localAddress, org.apache.hc.core5.util.TimeValue connectTimeout, org.apache.hc.core5.http.io.SocketConfig socketConfig, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
      Description copied from interface: HttpClientConnectionOperator
      Connect the given managed connection to the remote endpoint.
      Specified by:
      connect in interface HttpClientConnectionOperator
      Parameters:
      conn - the managed connection.
      host - the address of the opposite endpoint.
      localAddress - the address of the local endpoint.
      connectTimeout - the timeout of the connect operation.
      socketConfig - the socket configuration.
      context - the execution context.
      Throws:
      IOException
    • connect

      public void connect(ManagedHttpClientConnection conn, org.apache.hc.core5.http.HttpHost endpointHost, org.apache.hc.core5.net.NamedEndpoint endpointName, InetSocketAddress localAddress, org.apache.hc.core5.util.Timeout connectTimeout, org.apache.hc.core5.http.io.SocketConfig socketConfig, Object attachment, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
      Description copied from interface: HttpClientConnectionOperator
      Connect the given managed connection to the remote endpoint.
      Specified by:
      connect in interface HttpClientConnectionOperator
      Parameters:
      conn - the managed connection.
      endpointHost - the address of the remote endpoint.
      endpointName - the name of the remote endpoint, if different from the endpoint host name, null otherwise. Usually taken from the request URU authority.
      localAddress - the address of the local endpoint.
      connectTimeout - the timeout of the connect operation.
      socketConfig - the socket configuration.
      attachment - connect request attachment.
      context - the execution context.
      Throws:
      IOException
    • connect

      public void connect(ManagedHttpClientConnection conn, org.apache.hc.core5.http.HttpHost endpointHost, org.apache.hc.core5.net.NamedEndpoint endpointName, Path unixDomainSocket, InetSocketAddress localAddress, org.apache.hc.core5.util.Timeout connectTimeout, org.apache.hc.core5.http.io.SocketConfig socketConfig, Object attachment, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
      Description copied from interface: HttpClientConnectionOperator
      Connect the given managed connection to the remote endpoint.
      Specified by:
      connect in interface HttpClientConnectionOperator
      Parameters:
      conn - the managed connection.
      endpointHost - the address of the remote endpoint.
      endpointName - the name of the remote endpoint, if different from the endpoint host name, null otherwise. Usually taken from the request URU authority.
      unixDomainSocket - the path to the Unix domain socket, or null if none.
      localAddress - the address of the local endpoint.
      connectTimeout - the timeout of the connect operation.
      socketConfig - the socket configuration.
      attachment - connect request attachment.
      context - the execution context.
      Throws:
      IOException
    • upgradeToTls

      private void upgradeToTls(ManagedHttpClientConnection conn, org.apache.hc.core5.http.HttpHost endpointHost, org.apache.hc.core5.net.NamedEndpoint endpointName, org.apache.hc.core5.util.Timeout connectTimeout, Object attachment, org.apache.hc.core5.http.protocol.HttpContext context, TlsSocketStrategy tlsSocketStrategy, Socket socket) throws IOException
      Throws:
      IOException
    • connectToUnixDomainSocket

      private void connectToUnixDomainSocket(ManagedHttpClientConnection conn, org.apache.hc.core5.http.HttpHost endpointHost, org.apache.hc.core5.net.NamedEndpoint endpointName, Object attachment, Path unixDomainSocket, org.apache.hc.core5.util.Timeout connectTimeout, org.apache.hc.core5.http.io.SocketConfig socketConfig, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
      Throws:
      IOException
    • configureSocket

      private static void configureSocket(Socket socket, org.apache.hc.core5.http.io.SocketConfig socketConfig, boolean isTcp) throws IOException
      Throws:
      IOException
    • upgrade

      public void upgrade(ManagedHttpClientConnection conn, org.apache.hc.core5.http.HttpHost host, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
      Description copied from interface: HttpClientConnectionOperator
      Upgrades transport security of the given managed connection by using the TLS security protocol.
      Specified by:
      upgrade in interface HttpClientConnectionOperator
      Parameters:
      conn - the managed connection.
      host - the address of the opposite endpoint with TLS security.
      context - the execution context.
      Throws:
      IOException
    • upgrade

      public void upgrade(ManagedHttpClientConnection conn, org.apache.hc.core5.http.HttpHost endpointHost, org.apache.hc.core5.net.NamedEndpoint endpointName, Object attachment, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
      Description copied from interface: HttpClientConnectionOperator
      Upgrades transport security of the given managed connection by using the TLS security protocol.
      Specified by:
      upgrade in interface HttpClientConnectionOperator
      Parameters:
      conn - the managed connection.
      endpointHost - the address of the remote endpoint.
      endpointName - the name of the remote endpoint, if different from the endpoint host name, null otherwise. Usually taken from the request URU authority.
      attachment - connect request attachment.
      context - the execution context.
      Throws:
      IOException
    • onBeforeSocketConnect

      protected void onBeforeSocketConnect(org.apache.hc.core5.http.protocol.HttpContext httpContext, org.apache.hc.core5.http.HttpHost endpointHost)
    • onAfterSocketConnect

      protected void onAfterSocketConnect(org.apache.hc.core5.http.protocol.HttpContext httpContext, org.apache.hc.core5.http.HttpHost endpointHost)
    • onBeforeTlsHandshake

      protected void onBeforeTlsHandshake(org.apache.hc.core5.http.protocol.HttpContext httpContext, org.apache.hc.core5.http.HttpHost endpointHost)
    • onAfterTlsHandshake

      protected void onAfterTlsHandshake(org.apache.hc.core5.http.protocol.HttpContext httpContext, org.apache.hc.core5.http.HttpHost endpointHost)