cache_info() gives details of cacheability of a response, rerequest() re-performs the original request doing as little work as possible (if not expired, returns response as is, or performs revalidation if Etag or Last-Modified headers are present).

cache_info(r)

rerequest(r)

Arguments

r

A response

Examples

# Never cached, always causes redownload r1 <- GET("https://www.google.com") cache_info(r1)
#> <cache_info> https://www.google.com/ #> Cacheable: TRUE #> Expires: Mon, 17 Dec 2018 20:44:39 GMT <expired> #> Last-Modified: #> Etag:
r1$date
#> [1] "2018-12-17 20:44:39 GMT"
rerequest(r1)$date
#> [1] "2018-12-17 20:44:39 GMT"
# Expires in a year r2 <- GET("https://www.google.com/images/srpr/logo11w.png") cache_info(r2)
#> <cache_info> https://www.google.com/images/srpr/logo11w.png #> Cacheable: TRUE #> Expires: Tue, 17 Dec 2019 20:44:39 GMT #> Last-Modified: Fri, 16 Dec 2016 12:30:00 GMT #> Etag:
r2$date
#> [1] "2018-12-17 20:44:39 GMT"
rerequest(r2)$date
#> [1] "2018-12-17 20:44:39 GMT"
# Has last-modified and etag, so does revalidation r3 <- GET("http://httpbin.org/cache") cache_info(r3)
#> <cache_info> http://httpbin.org/cache #> Cacheable: TRUE #> Last-Modified: Mon, 17 Dec 2018 20:44:39 GMT #> Etag: 9b4f3a0462b240de9ba9e8d141cc2b64
r3$date
#> [1] "2018-12-17 20:44:39 GMT"
rerequest(r3)$date
#> [1] "2018-12-17 20:44:39 GMT"
# Expires after 5 seconds
# NOT RUN { r4 <- GET("http://httpbin.org/cache/5") cache_info(r4) r4$date rerequest(r4)$date Sys.sleep(5) cache_info(r4) rerequest(r4)$date # }