|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.http.impl.client.cache.CachingHttpClient
CachingHttpClientBuilder
or CachingHttpClients
.
@Deprecated @Contract(threading=SAFE_CONDITIONAL) public class CachingHttpClient
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.
Field Summary | |
---|---|
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 Summary | |
---|---|
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. |
Method Summary | ||
---|---|---|
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. |
|
|
execute(org.apache.http.HttpHost target,
org.apache.http.HttpRequest request,
ResponseHandler<? extends T> responseHandler)
Deprecated. |
|
|
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. |
|
|
execute(HttpUriRequest request,
ResponseHandler<? extends T> responseHandler)
Deprecated. |
|
|
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. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
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.
Constructor Detail |
---|
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 optionsMethod Detail |
---|
public 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 HttpClient
IOException
public <T> T execute(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, ResponseHandler<? extends T> responseHandler) throws IOException
execute
in interface HttpClient
IOException
public <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 HttpClient
IOException
public org.apache.http.HttpResponse execute(HttpUriRequest request) throws IOException
execute
in interface HttpClient
IOException
public org.apache.http.HttpResponse execute(HttpUriRequest request, org.apache.http.protocol.HttpContext context) throws IOException
execute
in interface HttpClient
IOException
public <T> T execute(HttpUriRequest request, ResponseHandler<? extends T> responseHandler) throws IOException
execute
in interface HttpClient
IOException
public <T> T execute(HttpUriRequest request, ResponseHandler<? extends T> responseHandler, org.apache.http.protocol.HttpContext context) throws IOException
execute
in interface HttpClient
IOException
public ClientConnectionManager getConnectionManager()
getConnectionManager
in interface HttpClient
public org.apache.http.params.HttpParams getParams()
getParams
in interface HttpClient
public 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 HttpClient
IOException
public 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)
cache
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |