Class Apache5HttpTransport (1.45.0)

public final class Apache5HttpTransport extends HttpTransport

Thread-safe HTTP transport based on the Apache HTTP Client library.

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.

Inheritance

java.lang.Object > HttpTransport > Apache5HttpTransport

Static Methods

newDefaultHttpClient()

public static HttpClient newDefaultHttpClient()

Creates a new instance of the Apache HTTP client that is used by the #Apache5HttpTransport() 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 SystemDefaultRoutePlanner with ProxySelector#getDefault(), which uses the proxy settings from system properties.
Returns
Type Description
org.apache.hc.client5.http.classic.HttpClient

new instance of the Apache HTTP client

newDefaultHttpClientBuilder()

public static HttpClientBuilder newDefaultHttpClientBuilder()

Creates a new Apache HTTP client builder that is used by the #Apache5HttpTransport() 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 SystemDefaultRoutePlanner with ProxySelector#getDefault(), which uses the proxy settings from system properties.
Returns
Type Description
org.apache.hc.client5.http.impl.classic.HttpClientBuilder

new instance of the Apache HTTP client builder

Constructors

Apache5HttpTransport()

public Apache5HttpTransport()

Constructor that uses #newDefaultHttpClient() for the Apache HTTP client.

Apache5HttpTransport(HttpClient httpClient)

public Apache5HttpTransport(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).
Parameter
Name Description
httpClient org.apache.hc.client5.http.classic.HttpClient

Apache HTTP client to use

Apache5HttpTransport(HttpClient httpClient, boolean isMtls)

public Apache5HttpTransport(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
Name Description
httpClient org.apache.hc.client5.http.classic.HttpClient

Apache HTTP client to use

isMtls boolean

If the HTTP client is mutual TLS

Methods

buildRequest(String method, String url)

protected Apache5HttpRequest buildRequest(String method, String url)

Builds a low level HTTP request for the given HTTP method.

Parameters
Name Description
method String
url String
Returns
Type Description
Apache5HttpRequest
Overrides

getHttpClient()

public HttpClient getHttpClient()

Returns the Apache HTTP client.

Returns
Type Description
org.apache.hc.client5.http.classic.HttpClient

isMtls()

public boolean isMtls()

Returns if the underlying HTTP client is mTLS.

Returns
Type Description
boolean
Overrides

shutdown()

public void shutdown()

Gracefully shuts down the connection manager and releases allocated resources. This closes all connections, whether they are currently used or not.

Overrides
Exceptions
Type Description
IOException

supportsMethod(String method)

public boolean supportsMethod(String method)

Returns 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.

Parameter
Name Description
method String
Returns
Type Description
boolean
Overrides