Convenience wrapper around !httr::http_error()
that returns
TRUE
if the specifiedurl
could be resolved and aHEAD
request could be successfully completed, orFALSE
in any other case.
Arguments
- url
HTTP protocol address. The scheme is optional, so both
"google.com"
and"https://google.com"
will work. A character scalar.- retries
Maximum number of retries of the
HEAD
request in case of an HTTP error. An integer scalar>= 0
. The retries are performed using exponential backoff and jitter, seehttr::RETRY()
for details.- quiet
Whether or not to suppress the message displaying how long until the next retry in case an HTTP error occurred. A logical scalar. Only relevant if
retries > 0
.
Details
This function is similar to RCurl::url.exists()
, i.e. it only retrieves the header, no body, but is based on httr which in turn is
based on curl.
For checks on lower levels of the network stack like performing DNS queries or TCP port pings, see the pingr package.
See also
Other HTTP functions:
assert_mime_type()
,
is_url()
,
req_cached()
Examples
pal::is_http_success("goo.gl")
#> [1] TRUE
pal::is_http_success("https://google.com/")
#> [1] TRUE
pal::is_http_success("https://google.not/")
#> [1] FALSE
pal::is_http_success("https://google.not/",
retries = 2,
quiet = FALSE)
#> Error in curl::curl_fetch_memory(url, handle = handle): Couldn't resolve host name [google.not]: Could not resolve host: google.not
#> Request failed [ERROR]. Retrying in 1.7 seconds...
#> Error in curl::curl_fetch_memory(url, handle = handle): Couldn't resolve host name [google.not]: Could not resolve host: google.not
#> Request failed [ERROR]. Retrying in 3 seconds...
#> [1] FALSE