@Immutable public final class CachingWire extends Object implements Wire
This decorator can be used when you want to avoid duplicate GET requests to load-sensitive resources, for example:
String html = new JdkRequest("http://goggle.com") .through(CachingWire.class) .header(HttpHeaders.ACCEPT, MediaType.TEXT_PLAIN) .fetch() .body();
Since 1.5, you can also configure it to flush the entire cache on certain request URI's, for example:
new JdkRequest(uri) .through(CachingWire.class, "GET /save/.*") .uri().path("/save/123").back() .fetch();
Since 1.17.3, you can pass a LoadingCache
alongside the wire.
final LoadingCache<Callable<Response>, Response> cache = ...;
new JdkRequest(uri)
.through(CachingWire.class, cache)
.uri().path("/save/123").back()
.fetch();
The regular expression provided will be used against a string constructed as an HTTP method, space, path of the URI together with query part.
The class is immutable and thread-safe.
Constructor and Description |
---|
CachingWire(Wire wire)
Public ctor.
|
CachingWire(Wire wire,
com.google.common.cache.LoadingCache<Callable<Response>,Response> storage)
Public ctor.
|
CachingWire(Wire wire,
String flsh)
Public ctor.
|
CachingWire(Wire wire,
String flsh,
com.google.common.cache.LoadingCache<Callable<Response>,Response> storage)
Public ctor.
|
Modifier and Type | Method and Description |
---|---|
static void |
invalidate()
Invalidate the entire cache.
|
Response |
send(Request req,
String home,
String method,
Collection<Map.Entry<String,String>> headers,
InputStream content,
int connect,
int read)
Send request and return response.
|
public CachingWire(Wire wire)
wire
- Original wirepublic CachingWire(Wire wire, String flsh)
wire
- Original wireflsh
- Flushing regular expressionpublic CachingWire(Wire wire, com.google.common.cache.LoadingCache<Callable<Response>,Response> storage)
wire
- Original wirestorage
- Cachepublic Response send(Request req, String home, String method, Collection<Map.Entry<String,String>> headers, InputStream content, int connect, int read) throws IOException
Wire
send
in interface Wire
req
- Requesthome
- URI to fetchmethod
- HTTP methodheaders
- Headerscontent
- HTTP bodyconnect
- The connect timeoutread
- The read timeoutIOException
- if failspublic static void invalidate()
Copyright © 2012–2021 jcabi.com. All rights reserved.