org.apache.hc.client5.http.socket

## Interface ConnectionSocketFactory

- All Known Subinterfaces:
    LayeredConnectionSocketFactory
  All Known Implementing Classes:
    PlainConnectionSocketFactory, SSLConnectionSocketFactory

      @Contract(threading=STATELESS)
      public interface ConnectionSocketFactory

  A factory for creating and connecting connection sockets.
  Since:
    4.3

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default Socket` | `connectSocket(Socket socket, HttpHost host, InetSocketAddress remoteAddress, InetSocketAddress localAddress, Timeout connectTimeout, Object attachment, HttpContext context)` Connects the socket to the target host with the given resolved remote address.
    `Socket` | `connectSocket(TimeValue connectTimeout, Socket socket, HttpHost host, InetSocketAddress remoteAddress, InetSocketAddress localAddress, HttpContext context)` Connects the socket to the target host with the given resolved remote address.
    `Socket` | `createSocket(HttpContext context)` Creates new, unconnected socket.
    `default Socket` | `createSocket(Proxy proxy, HttpContext context)` Creates new, unconnected socket via a proxy (generally SOCKS is expected).

- - ### Method Detail

    - #### createSocket

          Socket createSocket(HttpContext context)
                       throws IOException

      Creates new, unconnected socket. The socket should subsequently be passed to `connectSocket` method.
      Throws:
        `IOException`

    - #### createSocket

          @Internal
          default Socket createSocket(Proxy proxy,
                                                HttpContext context)
                                         throws IOException

      Creates new, unconnected socket via a proxy (generally SOCKS is expected). The socket should subsequently be passed to `connectSocket` method.
      Throws:
        `IOException`
      Since:
        5.2

    - #### connectSocket

          Socket connectSocket(TimeValue connectTimeout,
                               Socket socket,
                               HttpHost host,
                               InetSocketAddress remoteAddress,
                               InetSocketAddress localAddress,
                               HttpContext context)
                        throws IOException

      Connects the socket to the target host with the given resolved remote address.
      Parameters:
        `connectTimeout` - connect timeout.
        `socket` - the socket to connect, as obtained from `createSocket(HttpContext)`. `null` indicates that a new socket should be created and connected.
        `host` - target host as specified by the caller (end user).
        `remoteAddress` - the resolved remote address to connect to.
        `localAddress` - the local address to bind the socket to, or `null` for any.
        `context` - the actual HTTP context.
      Returns:
        the connected socket. The returned object may be different from the `sock` argument if this factory supports a layered protocol.
      Throws:
        `IOException` - if an I/O error occurs

    - #### connectSocket

          default Socket connectSocket(Socket socket,
                                       HttpHost host,
                                       InetSocketAddress remoteAddress,
                                       InetSocketAddress localAddress,
                                       Timeout connectTimeout,
                                       Object attachment,
                                       HttpContext context)
                                throws IOException

      Connects the socket to the target host with the given resolved remote address.
      Parameters:
        `socket` - the socket to connect, as obtained from `createSocket(HttpContext)`. `null` indicates that a new socket should be created and connected.
        `host` - target host as specified by the caller (end user).
        `remoteAddress` - the resolved remote address to connect to.
        `localAddress` - the local address to bind the socket to, or `null` for any.
        `connectTimeout` - connect timeout.
        `attachment` - connect request attachment.
        `context` - the actual HTTP context.
      Returns:
        the connected socket. The returned object may be different from the `sock` argument if this factory supports a layered protocol.
      Throws:
        `IOException` - if an I/O error occurs
      Since:
        5.2

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