## Uses of Interface
org.apache.http.impl.execchain.ClientExecChain

Packages that use ClientExecChain
Package | Description
--- | ---
org.apache.http.impl.client | Default HTTP client implementation.
org.apache.http.impl.client.cache | This package contains a cache module that can be used for HTTP/1.1 client-side caching.
org.apache.http.impl.execchain | HTTP request execution chain APIs.

### Uses of ClientExecChain in org.apache.http.impl.client

Methods in org.apache.http.impl.client that return ClientExecChain
Modifier and Type | Method and Description
--- | ---

`protected ClientExecChain`

HttpClientBuilder.`createMainExec(org.apache.http.protocol.HttpRequestExecutor requestExec, HttpClientConnectionManager connManager, org.apache.http.ConnectionReuseStrategy reuseStrategy, ConnectionKeepAliveStrategy keepAliveStrategy, org.apache.http.protocol.HttpProcessor proxyHttpProcessor, AuthenticationStrategy targetAuthStrategy, AuthenticationStrategy proxyAuthStrategy, UserTokenHandler userTokenHandler)`
Produces an instance of `ClientExecChain` to be used as a main exec.

`protected ClientExecChain` | HttpClientBuilder.`decorateMainExec(ClientExecChain mainExec)` For internal use.
`protected ClientExecChain` | HttpClientBuilder.`decorateProtocolExec(ClientExecChain protocolExec)` For internal use.

Methods in org.apache.http.impl.client with parameters of type ClientExecChain
Modifier and Type | Method and Description
--- | ---
`protected ClientExecChain` | HttpClientBuilder.`decorateMainExec(ClientExecChain mainExec)` For internal use.
`protected ClientExecChain` | HttpClientBuilder.`decorateProtocolExec(ClientExecChain protocolExec)` For internal use.

### Uses of ClientExecChain in org.apache.http.impl.client.cache

Classes in org.apache.http.impl.client.cache that implement ClientExecChain
Modifier and Type | Class and Description
--- | ---
`class` | `CachingExec` Request executor in the request execution chain that is responsible for transparent client-side caching.

Methods in org.apache.http.impl.client.cache that return ClientExecChain
Modifier and Type | Method and Description
--- | ---
`protected ClientExecChain` | CachingHttpClientBuilder.`decorateMainExec(ClientExecChain mainExec)`

Methods in org.apache.http.impl.client.cache with parameters of type ClientExecChain
Modifier and Type | Method and Description
--- | ---
`protected ClientExecChain` | CachingHttpClientBuilder.`decorateMainExec(ClientExecChain mainExec)`

Constructors in org.apache.http.impl.client.cache with parameters of type ClientExecChain
Constructor and Description
`CachingExec(ClientExecChain backend)`
`CachingExec(ClientExecChain backend, org.apache.http.impl.client.cache.HttpCache cache, CacheConfig config)`
`CachingExec(ClientExecChain backend, org.apache.http.impl.client.cache.HttpCache cache, CacheConfig config, org.apache.http.impl.client.cache.AsynchronousValidator asynchRevalidator)`
`CachingExec(ClientExecChain backend, ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config)`

### Uses of ClientExecChain in org.apache.http.impl.execchain

Classes in org.apache.http.impl.execchain that implement ClientExecChain
Modifier and Type | Class and Description
--- | ---
`class` | `BackoffStrategyExec`
`class` | `MainClientExec` The last request executor in the HTTP request execution chain that is responsible for execution of request / response exchanges with the opposite endpoint.
`class` | `MinimalClientExec` Request executor that implements the most fundamental aspects of the HTTP specification and the most straight-forward request / response exchange with the target server.
`class` | `ProtocolExec` Request executor in the request execution chain that is responsible for implementation of HTTP specification requirements.
`class` | `RedirectExec` Request executor in the request execution chain that is responsible for handling of request redirects.
`class` | `RetryExec` Request executor in the request execution chain that is responsible for making a decision whether a request failed due to an I/O error should be re-executed.
`class` | `ServiceUnavailableRetryExec` Request executor in the request execution chain that is responsible for making a decision whether a request that received a non-2xx response from the target server should be re-executed.

Constructors in org.apache.http.impl.execchain with parameters of type ClientExecChain
Constructor and Description
`BackoffStrategyExec(ClientExecChain requestExecutor, ConnectionBackoffStrategy connectionBackoffStrategy, BackoffManager backoffManager)`
`ProtocolExec(ClientExecChain requestExecutor, org.apache.http.protocol.HttpProcessor httpProcessor)`
`RedirectExec(ClientExecChain requestExecutor, HttpRoutePlanner routePlanner, RedirectStrategy redirectStrategy)`
`RetryExec(ClientExecChain requestExecutor, HttpRequestRetryHandler retryHandler)`
`ServiceUnavailableRetryExec(ClientExecChain requestExecutor, ServiceUnavailableRetryStrategy retryStrategy)`