Class AbstractHttpClient
- All Implemented Interfaces:
Closeable,AutoCloseable,HttpClient
- Direct Known Subclasses:
DefaultHttpClient
HttpClient implementations.
This class acts as a facade to a number of special purpose handler or
strategy implementations responsible for handling of a particular aspect
of the HTTP protocol such as redirect or authentication handling or
making decision about connection persistence and keep alive duration.
This enables the users to selectively replace default implementation
of those aspects with custom, application specific ones. This class
also provides factory methods to instantiate those objects:
HttpRequestExecutorobject used to transmit messages over HTTP connections. ThecreateRequestExecutor()must be implemented by concrete super classes to instantiate this object.BasicHttpProcessorobject to manage a list of protocol interceptors and apply cross-cutting protocol logic to all incoming and outgoing HTTP messages. ThecreateHttpProcessor()must be implemented by concrete super classes to instantiate this object.HttpRequestRetryHandlerobject used to decide whether or not a failed HTTP request is safe to retry automatically. ThecreateHttpRequestRetryHandler()must be implemented by concrete super classes to instantiate this object.ClientConnectionManagerobject used to manage persistent HTTP connections.ConnectionReuseStrategyobject used to decide whether or not a HTTP connection can be kept alive and re-used for subsequent HTTP requests. ThecreateConnectionReuseStrategy()must be implemented by concrete super classes to instantiate this object.ConnectionKeepAliveStrategyobject used to decide how long a persistent HTTP connection can be kept alive. ThecreateConnectionKeepAliveStrategy()must be implemented by concrete super classes to instantiate this object.CookieSpecRegistryobject used to maintain a list of supported cookie specifications. ThecreateCookieSpecRegistry()must be implemented by concrete super classes to instantiate this object.CookieStoreobject used to maintain a collection of cookies. ThecreateCookieStore()must be implemented by concrete super classes to instantiate this object.AuthSchemeRegistryobject used to maintain a list of supported authentication schemes. ThecreateAuthSchemeRegistry()must be implemented by concrete super classes to instantiate this object.CredentialsProviderobject used to maintain a collection user credentials. ThecreateCredentialsProvider()must be implemented by concrete super classes to instantiate this object.AuthenticationStrategyobject used to authenticate against the target host. ThecreateTargetAuthenticationStrategy()must be implemented by concrete super classes to instantiate this object.AuthenticationStrategyobject used to authenticate against the proxy host. ThecreateProxyAuthenticationStrategy()must be implemented by concrete super classes to instantiate this object.HttpRoutePlannerobject used to calculate a route for establishing a connection to the target host. The route may involve multiple intermediate hops. ThecreateHttpRoutePlanner()must be implemented by concrete super classes to instantiate this object.RedirectStrategyobject used to determine if an HTTP request should be redirected to a new location in response to an HTTP response received from the target server.UserTokenHandlerobject used to determine if the execution context is user identity specific. ThecreateUserTokenHandler()must be implemented by concrete super classes to instantiate this object.
This class also maintains a list of protocol interceptors intended
for processing outgoing requests and incoming responses and provides
methods for managing those interceptors. New protocol interceptors can be
introduced to the protocol processor chain or removed from it if needed.
Internally protocol interceptors are stored in a simple
ArrayList. They are executed in the same natural order
as they are added to the list.
AbstractHttpClient is thread safe. It is recommended that the same
instance of this class is reused for multiple request executions.
When an instance of DefaultHttpClient is no longer needed and is about
to go out of scope the connection manager associated with it must be
shut down by calling ClientConnectionManager.shutdown()!
- Since:
- 4.0
-
Method Summary
Modifier and TypeMethodDescriptionvoidDeprecated.voidaddRequestInterceptor(HttpRequestInterceptor itcp, int index) Deprecated.voidDeprecated.voidaddResponseInterceptor(HttpResponseInterceptor itcp, int index) Deprecated.voidDeprecated.voidDeprecated.voidclose()Deprecated.final AuthSchemeRegistryDeprecated.final BackoffManagerDeprecated.Deprecated.Deprecated.final ClientConnectionManagerDeprecated.Obtains the connection manager used by this client.final ConnectionReuseStrategyDeprecated.final CookieSpecRegistryDeprecated.final CookieStoreDeprecated.final CredentialsProviderDeprecated.final HttpRequestRetryHandlerDeprecated.final HttpParamsDeprecated.Obtains the parameters for this client.final AuthenticationHandlerDeprecated.(4.2) do not usefinal AuthenticationStrategyDeprecated.final RedirectHandlerDeprecated.(4.1) do not usefinal RedirectStrategyDeprecated.final HttpRequestExecutorDeprecated.getRequestInterceptor(int index) Deprecated.intDeprecated.getResponseInterceptor(int index) Deprecated.intDeprecated.final HttpRoutePlannerDeprecated.final AuthenticationHandlerDeprecated.(4.2) do not usefinal AuthenticationStrategyDeprecated.final UserTokenHandlerDeprecated.voidremoveRequestInterceptorByClass(Class<? extends HttpRequestInterceptor> clazz) Deprecated.voidremoveResponseInterceptorByClass(Class<? extends HttpResponseInterceptor> clazz) Deprecated.voidsetAuthSchemes(AuthSchemeRegistry registry) Deprecated.voidsetBackoffManager(BackoffManager manager) Deprecated.voidDeprecated.voidsetCookieSpecs(CookieSpecRegistry registry) Deprecated.voidsetCookieStore(CookieStore cookieStore) Deprecated.voidsetCredentialsProvider(CredentialsProvider credsProvider) Deprecated.voidDeprecated.voidDeprecated.voidsetParams(HttpParams params) Deprecated.Replaces the parameters.voidDeprecated.(4.2) do not usevoidDeprecated.voidsetRedirectHandler(RedirectHandler handler) Deprecated.(4.1) do not usevoidsetRedirectStrategy(RedirectStrategy strategy) Deprecated.voidsetReuseStrategy(ConnectionReuseStrategy strategy) Deprecated.voidsetRoutePlanner(HttpRoutePlanner routePlanner) Deprecated.voidDeprecated.(4.2) do not usevoidDeprecated.voidsetUserTokenHandler(UserTokenHandler handler) Deprecated.
-
Method Details
-
getParams
Deprecated.Description copied from interface:HttpClientObtains the parameters for this client. These parameters will become defaults for all requests being executed with this client, and for the parameters of dependent objects in this client.- Returns:
- the default parameters
-
setParams
Deprecated.Replaces the parameters. The implementation here does not update parameters of dependent objects.- Parameters:
params- the new default parameters
-
getConnectionManager
Deprecated.Description copied from interface:HttpClientObtains the connection manager used by this client.- Returns:
- the connection manager
-
getRequestExecutor
Deprecated. -
getAuthSchemes
Deprecated. -
setAuthSchemes
Deprecated. -
getConnectionBackoffStrategy
Deprecated. -
setConnectionBackoffStrategy
Deprecated. -
getCookieSpecs
Deprecated. -
getBackoffManager
Deprecated. -
setBackoffManager
Deprecated. -
setCookieSpecs
Deprecated. -
getConnectionReuseStrategy
Deprecated. -
setReuseStrategy
Deprecated. -
getConnectionKeepAliveStrategy
Deprecated. -
setKeepAliveStrategy
Deprecated. -
getHttpRequestRetryHandler
Deprecated. -
setHttpRequestRetryHandler
Deprecated. -
getRedirectHandler
Deprecated.(4.1) do not use -
setRedirectHandler
Deprecated.(4.1) do not use -
getRedirectStrategy
Deprecated.- Since:
- 4.1
-
setRedirectStrategy
Deprecated.- Since:
- 4.1
-
getTargetAuthenticationHandler
Deprecated.(4.2) do not use -
setTargetAuthenticationHandler
Deprecated.(4.2) do not use -
getTargetAuthenticationStrategy
Deprecated.- Since:
- 4.2
-
setTargetAuthenticationStrategy
Deprecated.- Since:
- 4.2
-
getProxyAuthenticationHandler
Deprecated.(4.2) do not use -
setProxyAuthenticationHandler
Deprecated.(4.2) do not use -
getProxyAuthenticationStrategy
Deprecated.- Since:
- 4.2
-
setProxyAuthenticationStrategy
Deprecated.- Since:
- 4.2
-
getCookieStore
Deprecated. -
setCookieStore
Deprecated. -
getCredentialsProvider
Deprecated. -
setCredentialsProvider
Deprecated. -
getRoutePlanner
Deprecated. -
setRoutePlanner
Deprecated. -
getUserTokenHandler
Deprecated. -
setUserTokenHandler
Deprecated. -
getResponseInterceptorCount
public int getResponseInterceptorCount()Deprecated. -
getResponseInterceptor
Deprecated. -
getRequestInterceptor
Deprecated. -
getRequestInterceptorCount
public int getRequestInterceptorCount()Deprecated. -
addResponseInterceptor
Deprecated. -
addResponseInterceptor
Deprecated. -
clearResponseInterceptors
public void clearResponseInterceptors()Deprecated. -
removeResponseInterceptorByClass
Deprecated. -
addRequestInterceptor
Deprecated. -
addRequestInterceptor
Deprecated. -
clearRequestInterceptors
public void clearRequestInterceptors()Deprecated. -
removeRequestInterceptorByClass
Deprecated. -
close
public void close()Deprecated.
-
HttpClientBuilder.