Class CachingExec
java.lang.Object
org.apache.http.impl.client.cache.CachingExec
- All Implemented Interfaces:
org.apache.http.impl.execchain.ClientExecChain
@Contract(threading=SAFE_CONDITIONAL)
public class CachingExec
extends Object
implements org.apache.http.impl.execchain.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
and
invalid reference
EhCache
storage backends.
invalid reference
memcached
Further responsibilities such as communication with the opposite endpoint is delegated to the next executor in the request execution chain.
- Since:
- 4.3
-
Constructor Summary
ConstructorsConstructorDescriptionCachingExec(org.apache.http.impl.execchain.ClientExecChain backend) CachingExec(org.apache.http.impl.execchain.ClientExecChain backend, ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config) CachingExec(org.apache.http.impl.execchain.ClientExecChain backend, org.apache.http.impl.client.cache.HttpCache cache, CacheConfig config) CachingExec(org.apache.http.impl.execchain.ClientExecChain backend, org.apache.http.impl.client.cache.HttpCache cache, CacheConfig config, org.apache.http.impl.client.cache.AsynchronousValidator asynchRevalidator) -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.http.client.methods.CloseableHttpResponseexecute(org.apache.http.conn.routing.HttpRoute route, org.apache.http.client.methods.HttpRequestWrapper request) org.apache.http.client.methods.CloseableHttpResponseexecute(org.apache.http.conn.routing.HttpRoute route, org.apache.http.client.methods.HttpRequestWrapper request, org.apache.http.client.protocol.HttpClientContext context) org.apache.http.client.methods.CloseableHttpResponseexecute(org.apache.http.conn.routing.HttpRoute route, org.apache.http.client.methods.HttpRequestWrapper request, org.apache.http.client.protocol.HttpClientContext context, org.apache.http.client.methods.HttpExecutionAware execAware) longReports the number of times that the cache successfully responded to anHttpRequestwithout contacting the origin server.longReports the number of times that the cache contacted the origin server because it had no appropriate response cached.longReports the number of times that the cache was able to satisfy a response by revalidating an existing but stale cache entry.booleanReports whether thisCachingHttpClientimplementation supports byte-range requests as specified by theRangeandContent-Rangeheaders.
-
Constructor Details
-
CachingExec
public CachingExec(org.apache.http.impl.execchain.ClientExecChain backend, org.apache.http.impl.client.cache.HttpCache cache, CacheConfig config) -
CachingExec
public CachingExec(org.apache.http.impl.execchain.ClientExecChain backend, org.apache.http.impl.client.cache.HttpCache cache, CacheConfig config, org.apache.http.impl.client.cache.AsynchronousValidator asynchRevalidator) -
CachingExec
public CachingExec(org.apache.http.impl.execchain.ClientExecChain backend, ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config) -
CachingExec
public CachingExec(org.apache.http.impl.execchain.ClientExecChain backend)
-
-
Method Details
-
getCacheHits
public long getCacheHits()Reports the number of times that the cache successfully responded to anHttpRequestwithout contacting the origin server.- Returns:
- the number of cache hits
-
getCacheMisses
public long getCacheMisses()Reports the number of times that the cache contacted the origin server because it had no appropriate response cached.- Returns:
- the number of cache misses
-
getCacheUpdates
public long getCacheUpdates()Reports the number of times that the cache was able to satisfy a response by revalidating an existing but stale cache entry.- Returns:
- the number of cache revalidations
-
execute
public org.apache.http.client.methods.CloseableHttpResponse execute(org.apache.http.conn.routing.HttpRoute route, org.apache.http.client.methods.HttpRequestWrapper request) throws IOException, org.apache.http.HttpException - Throws:
IOExceptionorg.apache.http.HttpException
-
execute
public org.apache.http.client.methods.CloseableHttpResponse execute(org.apache.http.conn.routing.HttpRoute route, org.apache.http.client.methods.HttpRequestWrapper request, org.apache.http.client.protocol.HttpClientContext context) throws IOException, org.apache.http.HttpException - Throws:
IOExceptionorg.apache.http.HttpException
-
execute
public org.apache.http.client.methods.CloseableHttpResponse execute(org.apache.http.conn.routing.HttpRoute route, org.apache.http.client.methods.HttpRequestWrapper request, org.apache.http.client.protocol.HttpClientContext context, org.apache.http.client.methods.HttpExecutionAware execAware) throws IOException, org.apache.http.HttpException - Specified by:
executein interfaceorg.apache.http.impl.execchain.ClientExecChain- Throws:
IOExceptionorg.apache.http.HttpException
-
supportsRangeAndContentRangeHeaders
public boolean supportsRangeAndContentRangeHeaders()Reports whether thisCachingHttpClientimplementation supports byte-range requests as specified by theRangeandContent-Rangeheaders.- Returns:
trueif byte-range requests are supported
-