| ncurl_aio {nanonext} | R Documentation | 
ncurl Async
Description
nano cURL - a minimalist http(s) client - async edition.
Usage
ncurl_aio(
  url,
  convert = TRUE,
  method = NULL,
  headers = NULL,
  data = NULL,
  response = NULL,
  timeout = NULL,
  tls = NULL
)
Arguments
| url | the URL address. | 
| convert | [default TRUE] logical value whether to attempt conversion of the received raw bytes to a character vector. Set to FALSE if downloading non-text data. | 
| method | (optional) the HTTP method (defaults to 'GET' if not specified). | 
| headers | (optional) a named character vector specifying the HTTP
request headers, for example:  | 
| data | (optional) character request data to be submitted. | 
| response | (optional) a character vector specifying the response headers
to return e.g.  | 
| timeout | (optional) integer value in milliseconds after which the transaction times out if not yet complete. | 
| tls | (optional) applicable to secure HTTPS sites only, a client TLS
Configuration object created by  | 
Value
An 'ncurlAio' (object of class 'ncurlAio' and 'recvAio') (invisibly). The following elements may be accessed:
-  $status- integer HTTP repsonse status code (200 - OK). Usestatus_codefor a translation of the meaning.
-  $headers- named list of response headers supplied in 'response', or NULL otherwise. If the status code is within the 300 range, i.e. a redirect, the response header 'Location' is automatically appended to return the redirect address.
-  $data- the response body, as a character string if 'convert' = TRUE (may be further parsed as html, json, xml etc. as required), or a raw byte vector if FALSE (usewriteBinto save as a file).
Promises
‘ncurlAio’ may be used anywhere that accepts a ‘promise’
from the promises package through the included
as.promise method.
The promises created are completely event-driven and non-polling.
If a status code of 200 (OK) is returned then the promise is resolved with the reponse body, otherwise it is rejected with a translation of the status code or ‘errorValue’ as the case may be.
See Also
ncurl_session for persistent connections.
Examples
nc <- ncurl_aio("https://www.r-project.org/",
                response = c("date", "server"),
                timeout = 2000L)
call_aio(nc)
nc$status
nc$headers
nc$data
if (interactive() && requireNamespace("promises", quietly = TRUE)) {
p <- as.promise(nc)
print(p)
p2 <- ncurl_aio("https://postman-echo.com/get") %...>% cat
is.promise(p2)
}