HttpClient {crul}R Documentation

HTTP client

Description

HTTP client

Arguments

url

(character) A url. One of url or handle required.

opts

(list) curl options, a named list. See curl_options for available curl options

proxies

an object of class proxy, as returned from the proxy function. Supports one proxy for now

headers

(list) a named list of headers

handle

A handle, see handle

Details

Methods

get(path, query, disk, stream, ...)

Make a GET request

post(path, query, body, disk, stream, ...)

Make a POST request

put(path, query, body, disk, stream, ...)

Make a PUT request

patch(path, query, body, disk, stream, ...)

Make a PATCH request

delete(path, query, body, disk, stream, ...)

Make a DELETE request

head(path, query, ...)

Make a HEAD request

Possible parameters (not all are allowed in each HTTP verb):

handles

curl handles are re-used on the level of the connection object, that is, each HttpClient object is separate from one another so as to better separate connections.

Note

a little quark about crul is that because user agent string can be passed as either a header or a curl option (both lead to a User-Agent header being passed in the HTTP request), we return the user agent string in the request_headers list of the response even if you pass in a useragent string as a curl option. Note that whether you pass in as a header like User-Agent or as a curl option like useragent, it is returned as request_headers$User-Agent so at least accessing it in the request headers is consistent.

See Also

post-requests, delete-requests, http-headers, writing-options, cookies

Examples

(x <- HttpClient$new(url = "https://httpbin.org"))
x$url
(res_get1 <- x$get('get'))
res_get1$content
res_get1$response_headers
res_get1$parse()

(res_get2 <- x$get('get', query = list(hello = "world")))
res_get2$parse()
library("jsonlite")
jsonlite::fromJSON(res_get2$parse())

# post request
(res_post <- x$post('post', body = list(hello = "world")))

## empty body request
x$post('post')

# put request
(res_put <- x$put('put'))

# delete request
(res_delete <- x$delete('delete'))

# patch request
(res_patch <- x$patch('patch'))

# head request
(res_head <- x$head())

# query params are URL encoded for you, so DO NOT do it yourself
## if you url encode yourself, it gets double encoded, and that's bad
(x <- HttpClient$new(url = "https://httpbin.org"))
res <- x$get("get", query = list(a = 'hello world'))

[Package crul version 0.5.2 Index]