Class Apache5HttpTransport
Implementation is thread-safe, as long as any parameter modification to the Apache HTTP Client is only done at initialization time. For maximum efficiency,
applications should use a single globally-shared instance of the HTTP transport.
Default settings are specified in newDefaultHttpClient(). Use the Apache5HttpTransport(HttpClient) constructor to override the Apache HTTP Client used. Please
read the
Apache HTTP Client 5.x configuration example for more complex configuration options.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.apache.hc.client5.http.classic.HttpClientApache HTTP client.private final booleanIf the HTTP client uses mTLS channel. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor that usesnewDefaultHttpClient()for the Apache HTTP client.Apache5HttpTransport(org.apache.hc.client5.http.classic.HttpClient httpClient) Constructor that allows an alternative Apache HTTP client to be used.Apache5HttpTransport(org.apache.hc.client5.http.classic.HttpClient httpClient, boolean isMtls) Beta
Constructor that allows an alternative CLoseable Apache HTTP client to be used. -
Method Summary
Modifier and TypeMethodDescriptionprotected Apache5HttpRequestbuildRequest(String method, String url) Builds a low level HTTP request for the given HTTP method.org.apache.hc.client5.http.classic.HttpClientReturns the Apache HTTP client.booleanisMtls()Returns if the underlying HTTP client is mTLS.static org.apache.hc.client5.http.classic.HttpClientCreates a new instance of the Apache HTTP client that is used by theApache5HttpTransport()constructor.static org.apache.hc.client5.http.impl.classic.HttpClientBuilderCreates a new Apache HTTP client builder that is used by theApache5HttpTransport()constructor.voidshutdown()Gracefully shuts down the connection manager and releases allocated resources.booleansupportsMethod(String method) Returns whether a specified HTTP method is supported by this transport.Methods inherited from class HttpTransport
createRequestFactory, createRequestFactory, isShutdown
-
Field Details
-
httpClient
private final org.apache.hc.client5.http.classic.HttpClient httpClientApache HTTP client. -
isMtls
private final boolean isMtlsIf the HTTP client uses mTLS channel.
-
-
Constructor Details
-
Apache5HttpTransport
public Apache5HttpTransport()Constructor that usesnewDefaultHttpClient()for the Apache HTTP client. -
Apache5HttpTransport
public Apache5HttpTransport(org.apache.hc.client5.http.classic.HttpClient httpClient) Constructor that allows an alternative Apache HTTP client to be used.If you choose to provide your own Apache HttpClient implementation, be sure that
- HTTP version is set to 1.1.
- Retries are disabled (google-http-client handles retries).
- Parameters:
httpClient- Apache HTTP client to use
-
Apache5HttpTransport
@Beta public Apache5HttpTransport(org.apache.hc.client5.http.classic.HttpClient httpClient, boolean isMtls) Beta
Constructor that allows an alternative CLoseable Apache HTTP client to be used.If you choose to provide your own Apache HttpClient implementation, be sure that
- HTTP version is set to 1.1.
- Retries are disabled (google-http-client handles retries).
- Redirects are disabled (google-http-client handles retries).
- Parameters:
httpClient- Apache HTTP client to useisMtls- If the HTTP client is mutual TLS
-
-
Method Details
-
newDefaultHttpClient
public static org.apache.hc.client5.http.classic.HttpClient newDefaultHttpClient()Creates a new instance of the Apache HTTP client that is used by theApache5HttpTransport()constructor.Settings:
- The client connection manager is set to
PoolingHttpClientConnectionManager. - The retry mechanism is turned off using
HttpClientBuilder.disableAutomaticRetries(). - Redirects are turned off using
HttpClientBuilder.disableRedirectHandling(). - The route planner uses
SystemDefaultRoutePlannerwithProxySelector.getDefault(), which uses the proxy settings from system properties.
- Returns:
- new instance of the Apache HTTP client
- The client connection manager is set to
-
newDefaultHttpClientBuilder
public static org.apache.hc.client5.http.impl.classic.HttpClientBuilder newDefaultHttpClientBuilder()Creates a new Apache HTTP client builder that is used by theApache5HttpTransport()constructor.Settings:
- The client connection manager is set to
PoolingHttpClientConnectionManager. - The retry mechanism is turned off using
HttpClientBuilder.disableAutomaticRetries(). - Redirects are turned off using
HttpClientBuilder.disableRedirectHandling(). - The route planner uses
SystemDefaultRoutePlannerwithProxySelector.getDefault(), which uses the proxy settings from system properties.
- Returns:
- new instance of the Apache HTTP client builder
- The client connection manager is set to
-
supportsMethod
Description copied from class:HttpTransportReturns whether a specified HTTP method is supported by this transport.Default implementation returns true if and only if the request method is
"DELETE","GET","POST", or"PUT". Subclasses should override.- Overrides:
supportsMethodin classHttpTransport- Parameters:
method- HTTP method
-
buildRequest
Description copied from class:HttpTransportBuilds a low level HTTP request for the given HTTP method.- Specified by:
buildRequestin classHttpTransport- Parameters:
method- HTTP methodurl- URL- Returns:
- new low level HTTP request
-
shutdown
Gracefully shuts down the connection manager and releases allocated resources. This closes all connections, whether they are currently used or not.- Overrides:
shutdownin classHttpTransport- Throws:
IOException- I/O exception
-
getHttpClient
public org.apache.hc.client5.http.classic.HttpClient getHttpClient()Returns the Apache HTTP client. -
isMtls
public boolean isMtls()Returns if the underlying HTTP client is mTLS.- Overrides:
isMtlsin classHttpTransport- Returns:
- boolean indicating if the transport is mTLS.
-