public class ApacheConnectorProvider extends Object implements org.glassfish.jersey.client.spi.ConnectorProvider
connectors
that utilize Apache HTTP Client to send and receive HTTP
request and responses.
The following connector configuration properties are supported:
ApacheClientProperties#CONNECTION_MANAGER
ApacheClientProperties#REQUEST_CONFIG
ApacheClientProperties#CREDENTIALS_PROVIDER
ApacheClientProperties#DISABLE_COOKIES
ClientProperties.PROXY_URI
ClientProperties.PROXY_USERNAME
ClientProperties.PROXY_PASSWORD
ClientProperties.REQUEST_ENTITY_PROCESSING
- default value is
RequestEntityProcessing.CHUNKED
ApacheClientProperties#PREEMPTIVE_BASIC_AUTHENTICATION
ApacheClientProperties#SSL_CONFIG
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 org.apache.http.conn.HttpClientConnectionManager
instance. If custom connection manager is used, then
chunked encoding size can be set by providing a custom org.apache.http.HttpClientConnection
(via custom
org.apache.http.impl.conn.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
ApacheClientProperties.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.
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.
Constructor and Description |
---|
ApacheConnectorProvider() |
Modifier and Type | Method and Description |
---|---|
org.glassfish.jersey.client.spi.Connector |
getConnector(javax.ws.rs.client.Client client,
javax.ws.rs.core.Configuration runtimeConfig) |
static org.apache.http.client.HttpClient |
getHttpClient(javax.ws.rs.core.Configurable<?> component)
Retrieve the underlying Apache
HttpClient instance from JerseyClient
or JerseyWebTarget configured to use ApacheConnectorProvider . |
public org.glassfish.jersey.client.spi.Connector getConnector(javax.ws.rs.client.Client client, javax.ws.rs.core.Configuration runtimeConfig)
getConnector
in interface org.glassfish.jersey.client.spi.ConnectorProvider
public static org.apache.http.client.HttpClient getHttpClient(javax.ws.rs.core.Configurable<?> component)
HttpClient
instance from JerseyClient
or JerseyWebTarget
configured to use ApacheConnectorProvider
.component
- JerseyClient
or JerseyWebTarget
instance that is configured to use
ApacheConnectorProvider
.HttpClient
instance.IllegalArgumentException
- in case the component
is neither JerseyClient
nor JerseyWebTarget
instance or
in case the component is not configured to use a ApacheConnectorProvider
.Copyright © 2015. All Rights Reserved.