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 Summary
FieldsModifier and TypeFieldDescriptionprivate final DetachedSocketFactoryprivate final DnsResolverprivate static final org.slf4j.Logger(package private) static final DetachedSocketFactoryprivate final SchemePortResolverprivate static final booleanprivate final org.apache.hc.core5.http.config.Lookup<TlsSocketStrategy> private final UnixDomainSocketFactory -
Constructor Summary
ConstructorsConstructorDescriptionDefaultHttpClientConnectionOperator(DetachedSocketFactory detachedSocketFactory, SchemePortResolver schemePortResolver, DnsResolver dnsResolver, org.apache.hc.core5.http.config.Lookup<TlsSocketStrategy> tlsSocketStrategyLookup) DefaultHttpClientConnectionOperator(SchemePortResolver schemePortResolver, DnsResolver dnsResolver, org.apache.hc.core5.http.config.Lookup<TlsSocketStrategy> tlsSocketStrategyLookup) DefaultHttpClientConnectionOperator(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> socketFactoryRegistry, SchemePortResolver schemePortResolver, DnsResolver dnsResolver) Deprecated.Do not use. -
Method Summary
Modifier and TypeMethodDescription(package private) static org.apache.hc.core5.http.config.Lookup<TlsSocketStrategy> adapt(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> lookup) Deprecated.Provided for backward compatibilityprivate static voidconfigureSocket(Socket socket, org.apache.hc.core5.http.io.SocketConfig socketConfig, boolean isTcp) voidconnect(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) Connect the given managed connection to the remote endpoint.voidconnect(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) Connect the given managed connection to the remote endpoint.voidconnect(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) Connect the given managed connection to the remote endpoint.private voidconnectToUnixDomainSocket(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) protected voidonAfterSocketConnect(org.apache.hc.core5.http.protocol.HttpContext httpContext, org.apache.hc.core5.http.HttpHost endpointHost) protected voidonAfterTlsHandshake(org.apache.hc.core5.http.protocol.HttpContext httpContext, org.apache.hc.core5.http.HttpHost endpointHost) protected voidonBeforeSocketConnect(org.apache.hc.core5.http.protocol.HttpContext httpContext, org.apache.hc.core5.http.HttpHost endpointHost) protected voidonBeforeTlsHandshake(org.apache.hc.core5.http.protocol.HttpContext httpContext, org.apache.hc.core5.http.HttpHost endpointHost) voidupgrade(ManagedHttpClientConnection conn, org.apache.hc.core5.http.HttpHost host, org.apache.hc.core5.http.protocol.HttpContext context) Upgrades transport security of the given managed connection by using the TLS security protocol.voidupgrade(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) Upgrades transport security of the given managed connection by using the TLS security protocol.private voidupgradeToTls(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)
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
SUPPORTS_KEEPALIVE_OPTIONS
private static final boolean SUPPORTS_KEEPALIVE_OPTIONS -
PLAIN_SOCKET_FACTORY
-
detachedSocketFactory
-
unixDomainSocketFactory
-
tlsSocketStrategyLookup
-
schemePortResolver
-
dnsResolver
-
-
Constructor Details
-
DefaultHttpClientConnectionOperator
public DefaultHttpClientConnectionOperator(DetachedSocketFactory detachedSocketFactory, SchemePortResolver schemePortResolver, DnsResolver dnsResolver, org.apache.hc.core5.http.config.Lookup<TlsSocketStrategy> tlsSocketStrategyLookup) -
DefaultHttpClientConnectionOperator
@Deprecated public DefaultHttpClientConnectionOperator(org.apache.hc.core5.http.config.Lookup<ConnectionSocketFactory> socketFactoryRegistry, SchemePortResolver schemePortResolver, DnsResolver dnsResolver) Deprecated.Do not use. -
DefaultHttpClientConnectionOperator
public DefaultHttpClientConnectionOperator(SchemePortResolver schemePortResolver, DnsResolver dnsResolver, org.apache.hc.core5.http.config.Lookup<TlsSocketStrategy> tlsSocketStrategyLookup)
-
-
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:HttpClientConnectionOperatorConnect the given managed connection to the remote endpoint.- Specified by:
connectin interfaceHttpClientConnectionOperator- 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:HttpClientConnectionOperatorConnect the given managed connection to the remote endpoint.- Specified by:
connectin interfaceHttpClientConnectionOperator- 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,nullotherwise. 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:HttpClientConnectionOperatorConnect the given managed connection to the remote endpoint.- Specified by:
connectin interfaceHttpClientConnectionOperator- 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,nullotherwise. Usually taken from the request URU authority.unixDomainSocket- the path to the Unix domain socket, ornullif 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:HttpClientConnectionOperatorUpgrades transport security of the given managed connection by using the TLS security protocol.- Specified by:
upgradein interfaceHttpClientConnectionOperator- 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:HttpClientConnectionOperatorUpgrades transport security of the given managed connection by using the TLS security protocol.- Specified by:
upgradein interfaceHttpClientConnectionOperator- 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,nullotherwise. 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)
-