@Contract(threading=SAFE_CONDITIONAL) public class CachingExec extends Object implements ClientExecChain
Request executor in the request execution chain that is responsible for transparent client-side caching.
The current implementation is conditionally compliant with HTTP/1.1 (meaning all the MUST and MUST NOTs are obeyed), although quite a lot, though not all, of the SHOULDs and SHOULD NOTs are obeyed too.
Folks that would like to experiment with alternative storage backends
should look at the HttpCacheStorage
interface and the related
package documentation there. You may also be interested in the provided
EhCache
and memcached
storage backends.
Further responsibilities such as communication with the opposite endpoint is delegated to the next executor in the request execution chain.
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) |
Modifier and Type | Method and Description |
---|---|
CloseableHttpResponse |
execute(HttpRoute route,
HttpRequestWrapper request) |
CloseableHttpResponse |
execute(HttpRoute route,
HttpRequestWrapper request,
HttpClientContext context) |
CloseableHttpResponse |
execute(HttpRoute route,
HttpRequestWrapper request,
HttpClientContext context,
HttpExecutionAware execAware) |
long |
getCacheHits()
Reports the number of times that the cache successfully responded
to an
HttpRequest without contacting the origin server. |
long |
getCacheMisses()
Reports the number of times that the cache contacted the origin
server because it had no appropriate response cached.
|
long |
getCacheUpdates()
Reports the number of times that the cache was able to satisfy
a response by revalidating an existing but stale cache entry.
|
boolean |
supportsRangeAndContentRangeHeaders()
Reports whether this
CachingHttpClient implementation
supports byte-range requests as specified by the Range
and Content-Range headers. |
public CachingExec(ClientExecChain backend, org.apache.http.impl.client.cache.HttpCache cache, CacheConfig config)
public CachingExec(ClientExecChain backend, org.apache.http.impl.client.cache.HttpCache cache, CacheConfig config, org.apache.http.impl.client.cache.AsynchronousValidator asynchRevalidator)
public CachingExec(ClientExecChain backend, ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config)
public CachingExec(ClientExecChain backend)
public long getCacheHits()
HttpRequest
without contacting the origin server.public long getCacheMisses()
public long getCacheUpdates()
public CloseableHttpResponse execute(HttpRoute route, HttpRequestWrapper request) throws IOException, org.apache.http.HttpException
IOException
org.apache.http.HttpException
public CloseableHttpResponse execute(HttpRoute route, HttpRequestWrapper request, HttpClientContext context) throws IOException, org.apache.http.HttpException
IOException
org.apache.http.HttpException
public CloseableHttpResponse execute(HttpRoute route, HttpRequestWrapper request, HttpClientContext context, HttpExecutionAware execAware) throws IOException, org.apache.http.HttpException
execute
in interface ClientExecChain
IOException
org.apache.http.HttpException
public boolean supportsRangeAndContentRangeHeaders()
CachingHttpClient
implementation
supports byte-range requests as specified by the Range
and Content-Range
headers.true
if byte-range requests are supportedCopyright © 2010–2022 The Apache Software Foundation. All rights reserved.