Class Apache5ConnectorProvider
- All Implemented Interfaces:
ConnectorProvider
connectors that utilize
Apache HTTP Client to send and receive HTTP request and responses.
The following connector configuration properties are supported:
Apache5ClientProperties.CONNECTION_CLOSING_STRATEGYApache5ClientProperties.CONNECTION_MANAGERApache5ClientProperties.CONNECTION_MANAGER_SHAREDApache5ClientProperties.DISABLE_COOKIESApache5ClientProperties.CREDENTIALS_PROVIDERApache5ClientProperties.KEEPALIVE_STRATEGYApache5ClientProperties.PREEMPTIVE_BASIC_AUTHENTICATIONClientProperties.PROXY_URIClientProperties.PROXY_USERNAMEClientProperties.PROXY_PASSWORDClientProperties.REQUEST_ENTITY_PROCESSING- default value isRequestEntityProcessing.CHUNKEDApache5ClientProperties.REQUEST_CONFIGApache5ClientProperties.RETRY_STRATEGYApache5ClientProperties.REUSE_STRATEGYApache5ClientProperties.USE_SYSTEM_PROPERTIES
Connector instances created via this connector provider use
chunked encoding as a default setting.
This can be overridden by the ClientProperties.REQUEST_ENTITY_PROCESSING.
By default the ClientProperties.CHUNKED_ENCODING_SIZE property is only supported
when using the default HttpClientConnection instance. If custom
connection manager is used, then chunked encoding size can be set by providing a custom
HttpClientConnection (via custom ManagedHttpClientConnectionFactory)
and overriding it's createOutputStream method.
Use of authorization by the AHC-based connectors is dependent on the chunk encoding setting.
If the entity buffering is enabled, the entity is buffered and authorization can be performed
automatically in response to a 401 by sending the request again. When entity buffering
is disabled (chunked encoding is used) then the property
Apache5ClientProperties.PREEMPTIVE_BASIC_AUTHENTICATION must
be set to true.
If a ClientResponse is obtained and an entity is not read from the response then
InboundMessageContext.close() MUST be called after processing the response to release
connection-based resources.
Registration of Apache5HttpClientBuilderConfigurator instance on the
Client is supported. A configuration provided by
Apache5HttpClientBuilderConfigurator will override the HttpClientBuilder
configuration set by using the properties.
If a response entity is obtained that is an instance of Closeable
then the instance MUST be closed after processing the entity to release
connection-based resources.
The following methods are currently supported: HEAD, GET, POST, PUT, DELETE, OPTIONS, PATCH and TRACE.
- Since:
- 2.5
- Author:
- Pavel Bucek, Arul Dhesiaseelan (aruld at acm.org), jorgeluisw at mac.com, Marek Potociar, Paul Sandoz, Maksim Mukosey (mmukosey at gmail.com)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetConnector(Client client, Configuration runtimeConfig) static org.apache.hc.client5.http.cookie.CookieStoregetCookieStore(Configurable<?> component) Retrieve the underlying ApacheCookieStoreinstance fromJerseyClientorJerseyWebTargetconfigured to useApacheConnectorProvider.static org.apache.hc.client5.http.classic.HttpClientgetHttpClient(Configurable<?> component) Retrieve the underlying ApacheHttpClientinstance fromJerseyClientorJerseyWebTargetconfigured to useApacheConnectorProvider.
-
Constructor Details
-
Apache5ConnectorProvider
public Apache5ConnectorProvider()
-
-
Method Details
-
getConnector
- Specified by:
getConnectorin interfaceConnectorProvider
-
getHttpClient
public static org.apache.hc.client5.http.classic.HttpClient getHttpClient(Configurable<?> component) Retrieve the underlying ApacheHttpClientinstance fromJerseyClientorJerseyWebTargetconfigured to useApacheConnectorProvider.- Parameters:
component-JerseyClientorJerseyWebTargetinstance that is configured to useApacheConnectorProvider.- Returns:
- underlying Apache
HttpClientinstance. - Throws:
IllegalArgumentException- in case thecomponentis neitherJerseyClientnorJerseyWebTargetinstance or in case the component is not configured to use aApacheConnectorProvider.- Since:
- 2.8
-
getCookieStore
public static org.apache.hc.client5.http.cookie.CookieStore getCookieStore(Configurable<?> component) Retrieve the underlying ApacheCookieStoreinstance fromJerseyClientorJerseyWebTargetconfigured to useApacheConnectorProvider.- Parameters:
component-JerseyClientorJerseyWebTargetinstance that is configured to useApacheConnectorProvider.- Returns:
- underlying Apache
CookieStoreinstance. - Throws:
IllegalArgumentException- in case thecomponentis neitherJerseyClientnorJerseyWebTargetinstance or in case the component is not configured to use aApacheConnectorProvider.- Since:
- 2.16
-