Class HttpUrlConnector
java.lang.Object
org.glassfish.jersey.client.internal.HttpUrlConnector
- All Implemented Interfaces:
Connector, Inflector<ClientRequest, ClientResponse>
Default client transport connector using
HttpURLConnection.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate final intprivate final HttpUrlConnectorProvider.ConnectionFactoryprivate final booleanprivate final booleanprivate static final Loggerprivate static final String[]private final booleanprivate final LazyValue<SSLSocketFactory> -
Constructor Summary
ConstructorsConstructorDescriptionHttpUrlConnector(javax.ws.rs.client.Client client, HttpUrlConnectorProvider.ConnectionFactory connectionFactory, int chunkSize, boolean fixLengthStreaming, boolean setMethodWorkaround) Create newHttpUrlConnectorinstance. -
Method Summary
Modifier and TypeMethodDescriptionprivate ClientResponse_apply(ClientRequest request) apply(ClientRequest request) Synchronously process client request into a response.Future<?> apply(ClientRequest request, AsyncConnectorCallback callback) Asynchronously process client request into a response.voidclose()Close connector and release all it's internally associated resources.private static InputStreamgetName()Get name of current connector.private booleanisHeaderRestricted(String name, String value) protected voidsecureConnection(JerseyClient client, HttpURLConnection uc) Secure connection if necessary.private voidsetOutboundHeaders(javax.ws.rs.core.MultivaluedMap<String, String> headers, HttpURLConnection uc) private static voidsetRequestMethodViaJreBugWorkaround(HttpURLConnection httpURLConnection, String method) Workaround for a bug inHttpURLConnection.setRequestMethod(String)The implementation of Sun/Oracle is throwing aProtocolExceptionwhen the method is not in the list of the HTTP/1.1 default methods.
-
Field Details
-
LOGGER
-
ALLOW_RESTRICTED_HEADERS_SYSTEM_PROPERTY
- See Also:
-
restrictedHeaders
-
restrictedHeaderSet
-
connectionFactory
-
chunkSize
private final int chunkSize -
fixLengthStreaming
private final boolean fixLengthStreaming -
setMethodWorkaround
private final boolean setMethodWorkaround -
isRestrictedHeaderPropertySet
private final boolean isRestrictedHeaderPropertySet -
sslSocketFactory
-
-
Constructor Details
-
HttpUrlConnector
public HttpUrlConnector(javax.ws.rs.client.Client client, HttpUrlConnectorProvider.ConnectionFactory connectionFactory, int chunkSize, boolean fixLengthStreaming, boolean setMethodWorkaround) Create newHttpUrlConnectorinstance.- Parameters:
client- JAX-RS client instance for which the connector is being created.connectionFactory-HttpsURLConnectionfactory to be used when creating connections.chunkSize- chunk size to use when using HTTP chunked transfer coding.fixLengthStreaming- specify if the thefixed-length streaming modeon the underlying HTTP URL connection instances should be used when sending requests.setMethodWorkaround- specify if the reflection workaround should be used to set HTTP URL connection method name. SeeHttpUrlConnectorProvider.SET_METHOD_WORKAROUNDfor details.
-
-
Method Details
-
getInputStream
- Throws:
IOException
-
apply
Description copied from interface:ConnectorSynchronously process client request into a response. The method is used by Jersey client runtime to synchronously send a request and receive a response.- Specified by:
applyin interfaceConnector- Specified by:
applyin interfaceInflector<ClientRequest, ClientResponse>- Parameters:
request- Jersey client request to be sent.- Returns:
- Jersey client response received for the client request.
-
apply
Description copied from interface:ConnectorAsynchronously process client request into a response. The method is used by Jersey client runtime to asynchronously send a request and receive a response. -
close
-
secureConnection
Secure connection if necessary. Provided implementation setsHostnameVerifierandSSLSocketFactoryto give connection, if that is an instance ofHttpsURLConnection.- Parameters:
client- client associated with this client runtime.uc- http connection to be secured.
-
_apply
- Throws:
IOException
-
setOutboundHeaders
private void setOutboundHeaders(javax.ws.rs.core.MultivaluedMap<String, String> headers, HttpURLConnection uc) -
isHeaderRestricted
-
setRequestMethodViaJreBugWorkaround
private static void setRequestMethodViaJreBugWorkaround(HttpURLConnection httpURLConnection, String method) Workaround for a bug inHttpURLConnection.setRequestMethod(String)The implementation of Sun/Oracle is throwing aProtocolExceptionwhen the method is not in the list of the HTTP/1.1 default methods. This means that to use e.g.PROPFINDand others, we must apply this workaround. See issue http://java.net/jira/browse/JERSEY-639 -
getName
Description copied from interface:ConnectorGet name of current connector. Should contain identification of underlying specification and optionally version number. Will be used in User-Agent header.
-