RCurl (version 1.98-1.12)

getCurlHandle: Create libcurl handles


These functions create and duplicate curl handles for use in calls to the HTTP facilities provided by that low-level language and this R-level interface. A curl handle is an opaque data type that contains a reference to the internal C-level data structure of libcurl for performing HTTP requests.

The getCurlMutliHandle returns an object that can be used for concurrent, multiple requests. It is quite different from the regular curl handle and again, should be treated as an opaque data type.


getCurlHandle(..., .opts = NULL, .encoding = integer(),
              .defaults = getOption("RCurlOptions"))
dupCurlHandle(curl, ..., .opts = NULL, .encoding = integer())
getCurlMultiHandle(..., .handles = list(...))


An object of class CURLHandle

which is simply a pointer to the memory for the C structure.



the existing curl handle that is to be duplicated


a named list of curl options to set after the handle has been created. For getCurlMultiHandle, these values are invidivual curl handle objects, created via getCurlHandle or dupCurlHandle.


a named list or CURLOptions object identifying the curl options for the handle. These and the ... arguments are used after the handle has been created.


an integer or a string that explicitly identifies the encoding of the content that is returned by the HTTP server in its response to our query. The possible strings are ‘UTF-8’ or ‘ISO-8859-1’ and the integers should be specified symbolically as CE_UTF8 and CE_LATIN1. Note that, by default, the package attempts to process the header of the HTTP response to determine the encoding. This argument is used when such information is erroneous and the caller knows the correct encoding.


a collection of default values taken from R's global/session options. This is a parameter so that one can override it if necessary.


a list of curl handle objects that are used as the individual request handles within the multi-asynchronous requests


Duncan Temple Lang


These functions create C-level data structures.


Curl homepage https://curl.se/

See Also

getURL curlPerform


Run this code

  options(RCurlOptions = list(verbose = TRUE,
                              followlocation = TRUE,
                              autoreferer = TRUE,
                              nosignal = TRUE))
  if(url.exists("https://www.omegahat.net/RCurl")) {
     x = getURL("https://www.omegahat.net/RCurl")
        # here we override one of these.
     x = getURL("https://www.omegahat.net/RCurl", verbose = FALSE)

Run the code above in your browser using DataLab