CachingHttpClientBuilder or CachingHttpClients.@Deprecated @Contract(threading=SAFE_CONDITIONAL) public class CachingHttpClient extends Object implements HttpClient
The CachingHttpClient is meant to be a drop-in replacement for
a DefaultHttpClient that transparently adds 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. Generally
speaking, you construct a CachingHttpClient by providing a
"backend" HttpClient used for making actual network requests and
provide an HttpCacheStorage instance to use for holding onto
cached responses. Additional configuration options can be provided by
passing in a CacheConfig. Note that all of the usual client
related configuration you want to do vis-a-vis timeouts and connection
pools should be done on this backend client before constructing a CachingHttpClient from it.
Generally speaking, the CachingHttpClient is implemented as a
Decorator
of the backend client; for any incoming request it attempts to satisfy
it from the cache, but if it can't, or if it needs to revalidate a stale
cache entry, it will use the backend client to make an actual request.
However, a proper HTTP/1.1 cache won't change the semantics of a request
and response; in particular, if you issue an unconditional request you
will get a full response (although it may be served to you from the cache,
or the cache may make a conditional request on your behalf to the origin).
This notion of "semantic transparency" means you should be able to drop
a CachingHttpClient into an existing application without breaking
anything.
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.
| Modifier and Type | Field and Description |
|---|---|
static String |
CACHE_RESPONSE_STATUS
Deprecated.
This is the name under which the
CacheResponseStatus of a request
(for example, whether it resulted in a cache hit) will be recorded if an
HttpContext is provided during execution. |
| Constructor and Description |
|---|
CachingHttpClient()
Deprecated.
Constructs a
CachingHttpClient with default caching settings that
stores cache entries in memory and uses a vanilla DefaultHttpClient
for backend requests. |
CachingHttpClient(CacheConfig config)
Deprecated.
Constructs a
CachingHttpClient with the given caching options that
stores cache entries in memory and uses a vanilla DefaultHttpClient
for backend requests. |
CachingHttpClient(HttpClient client)
Deprecated.
Constructs a
CachingHttpClient with default caching settings that
stores cache entries in memory and uses the given HttpClient
for backend requests. |
CachingHttpClient(HttpClient client,
CacheConfig config)
Deprecated.
Constructs a
CachingHttpClient with the given caching options that
stores cache entries in memory and uses the given HttpClient
for backend requests. |
CachingHttpClient(HttpClient client,
HttpCacheStorage storage,
CacheConfig config)
Deprecated.
Constructs a
CachingHttpClient with the given caching options
that stores cache entries in the provided storage backend and uses
the given HttpClient for backend requests. |
CachingHttpClient(HttpClient client,
ResourceFactory resourceFactory,
HttpCacheStorage storage,
CacheConfig config)
Deprecated.
Constructs a
CachingHttpClient with the given caching options
that stores cache entries in the provided storage backend and uses
the given HttpClient for backend requests. |
| Modifier and Type | Method and Description |
|---|---|
org.apache.http.HttpResponse |
execute(org.apache.http.HttpHost target,
org.apache.http.HttpRequest request)
Deprecated.
|
org.apache.http.HttpResponse |
execute(org.apache.http.HttpHost target,
org.apache.http.HttpRequest originalRequest,
org.apache.http.protocol.HttpContext context)
Deprecated.
|
<T> T |
execute(org.apache.http.HttpHost target,
org.apache.http.HttpRequest request,
ResponseHandler<? extends T> responseHandler)
Deprecated.
|
<T> T |
execute(org.apache.http.HttpHost target,
org.apache.http.HttpRequest request,
ResponseHandler<? extends T> responseHandler,
org.apache.http.protocol.HttpContext context)
Deprecated.
|
org.apache.http.HttpResponse |
execute(HttpUriRequest request)
Deprecated.
|
org.apache.http.HttpResponse |
execute(HttpUriRequest request,
org.apache.http.protocol.HttpContext context)
Deprecated.
|
<T> T |
execute(HttpUriRequest request,
ResponseHandler<? extends T> responseHandler)
Deprecated.
|
<T> T |
execute(HttpUriRequest request,
ResponseHandler<? extends T> responseHandler,
org.apache.http.protocol.HttpContext context)
Deprecated.
|
long |
getCacheHits()
Deprecated.
Reports the number of times that the cache successfully responded
to an
HttpRequest without contacting the origin server. |
long |
getCacheMisses()
Deprecated.
Reports the number of times that the cache contacted the origin
server because it had no appropriate response cached.
|
long |
getCacheUpdates()
Deprecated.
Reports the number of times that the cache was able to satisfy
a response by revalidating an existing but stale cache entry.
|
ClientConnectionManager |
getConnectionManager()
Deprecated.
|
org.apache.http.params.HttpParams |
getParams()
Deprecated.
|
boolean |
isSharedCache()
Deprecated.
Reports whether this
CachingHttpClient is configured as
a shared (public) or non-shared (private) cache. |
boolean |
supportsRangeAndContentRangeHeaders()
Deprecated.
Reports whether this
CachingHttpClient implementation
supports byte-range requests as specified by the Range
and Content-Range headers. |
public static final String CACHE_RESPONSE_STATUS
CacheResponseStatus of a request
(for example, whether it resulted in a cache hit) will be recorded if an
HttpContext is provided during execution.public CachingHttpClient()
CachingHttpClient with default caching settings that
stores cache entries in memory and uses a vanilla DefaultHttpClient
for backend requests.public CachingHttpClient(CacheConfig config)
CachingHttpClient with the given caching options that
stores cache entries in memory and uses a vanilla DefaultHttpClient
for backend requests.config - cache module optionspublic CachingHttpClient(HttpClient client)
CachingHttpClient with default caching settings that
stores cache entries in memory and uses the given HttpClient
for backend requests.client - used to make origin requestspublic CachingHttpClient(HttpClient client, CacheConfig config)
CachingHttpClient with the given caching options that
stores cache entries in memory and uses the given HttpClient
for backend requests.config - cache module optionsclient - used to make origin requestspublic CachingHttpClient(HttpClient client, ResourceFactory resourceFactory, HttpCacheStorage storage, CacheConfig config)
CachingHttpClient with the given caching options
that stores cache entries in the provided storage backend and uses
the given HttpClient for backend requests. However, cached
response bodies are managed using the given ResourceFactory.client - used to make origin requestsresourceFactory - how to manage cached response bodiesstorage - where to store cache entriesconfig - cache module optionspublic CachingHttpClient(HttpClient client, HttpCacheStorage storage, CacheConfig config)
CachingHttpClient with the given caching options
that stores cache entries in the provided storage backend and uses
the given HttpClient for backend requests.client - used to make origin requestsstorage - where to store cache entriesconfig - cache module optionspublic long getCacheHits()
HttpRequest without contacting the origin server.public long getCacheMisses()
public long getCacheUpdates()
public org.apache.http.HttpResponse execute(org.apache.http.HttpHost target,
org.apache.http.HttpRequest request)
throws IOException
execute in interface HttpClientIOExceptionpublic <T> T execute(org.apache.http.HttpHost target,
org.apache.http.HttpRequest request,
ResponseHandler<? extends T> responseHandler)
throws IOException
execute in interface HttpClientIOExceptionpublic <T> T execute(org.apache.http.HttpHost target,
org.apache.http.HttpRequest request,
ResponseHandler<? extends T> responseHandler,
org.apache.http.protocol.HttpContext context)
throws IOException
execute in interface HttpClientIOExceptionpublic org.apache.http.HttpResponse execute(HttpUriRequest request) throws IOException
execute in interface HttpClientIOExceptionpublic org.apache.http.HttpResponse execute(HttpUriRequest request, org.apache.http.protocol.HttpContext context) throws IOException
execute in interface HttpClientIOExceptionpublic <T> T execute(HttpUriRequest request, ResponseHandler<? extends T> responseHandler) throws IOException
execute in interface HttpClientIOExceptionpublic <T> T execute(HttpUriRequest request, ResponseHandler<? extends T> responseHandler, org.apache.http.protocol.HttpContext context) throws IOException
execute in interface HttpClientIOExceptionpublic ClientConnectionManager getConnectionManager()
getConnectionManager in interface HttpClientpublic org.apache.http.params.HttpParams getParams()
getParams in interface HttpClientpublic org.apache.http.HttpResponse execute(org.apache.http.HttpHost target,
org.apache.http.HttpRequest originalRequest,
org.apache.http.protocol.HttpContext context)
throws IOException
execute in interface HttpClientIOExceptionpublic boolean supportsRangeAndContentRangeHeaders()
CachingHttpClient implementation
supports byte-range requests as specified by the Range
and Content-Range headers.true if byte-range requests are supportedpublic boolean isSharedCache()
CachingHttpClient is configured as
a shared (public) or non-shared (private) cache. See CacheConfig.setSharedCache(boolean).true if we are behaving as a shared (public)
cacheCopyright © 2010–2022 The Apache Software Foundation. All rights reserved.