curlGetHeaders {base} | R Documentation |
Retrieve Headers from URLs
Description
Retrieve the headers for a URL for a supported protocol such as ‘http://’, ‘ftp://’, ‘https://’ and ‘ftps://’.
Usage
curlGetHeaders(url, redirect = TRUE, verify = TRUE,
timeout = 0L, TLS = "")
Arguments
url |
character string specifying the URL. |
redirect |
logical: should redirections be followed? |
verify |
logical: should certificates be verified as valid and applying to that host? |
timeout |
integer: the maximum time in seconds the request is allowed to take. Non-positive and invalid values are ignored (including the default). (Added in R 4.1.0.) |
TLS |
character: the minimum version of the TLS protocol to be used
for ‘https://’ URLs: the default ( |
Details
This reports what curl -I -L
or curl -I
would
report. For a ‘ftp://’ URL the ‘headers’ are a record of
the conversation between client and server before data transfer.
Only 500 header lines will be reported: there is a limit of 20 redirections so this should suffice (and even 20 would indicate problems).
If argument timeout
is not set to a positive integer this uses
getOption("timeout")
which defaults to 60 seconds. As
the request cannot be interrupted you may want to consider a shorter
value.
To see all the details of the interaction with the server(s) set
options(internet.info = 1)
.
HTTP[S] servers are allowed to refuse requests to read the headers and
some do: this will result in a status
of 405
.
For possible issues with secure URLs (especially on Windows) see
download.file
.
There is a security risk in not verifying certificates, but as only the headers are captured it is slight. Usually looking at the URL in a browser will reveal what the problem is (and it may well be machine-specific).
Value
A character vector with integer attribute "status"
(the
last-received ‘status’ code). If redirection occurs this will include
the headers for all the URLs visited.
For the interpretation of ‘status’ codes see https://en.wikipedia.org/wiki/List_of_HTTP_status_codes and https://en.wikipedia.org/wiki/List_of_FTP_server_return_codes. A successful FTP connection will usually have status 250, 257 or 350.
See Also
capabilities("libcurl")
to see if this is supported.
libcurlVersion
for the version of libcurl
in use.
options
HTTPUserAgent
and timeout
are used.
Examples
## needs Internet access, results vary
curlGetHeaders("http://bugs.r-project.org") ## this redirects to https://
## 2023-04: replaces slow and unreliable https://httpbin.org/status/404
curlGetHeaders("https://developer.R-project.org/inet-tests/not-found")
## returns status