After preparing a request, call req_stream()
to perform the request
and handle the result with a streaming callback. This is useful for
streaming HTTP APIs where potentially the stream never ends.
Arguments
- req
A request.
- callback
A single argument callback function. It will be called repeatedly with a raw vector whenever there is at least
buffer_kb
worth of data to process. It must returnTRUE
to continue streaming.- timeout_sec
Number of seconds to processs stream for.
- buffer_kb
Buffer size, in kilobytes.
Value
An HTTP response.
Examples
show_bytes <- function(x) {
cat("Got ", length(x), " bytes\n", sep = "")
TRUE
}
resp <- request(example_url()) %>%
req_url_path("/stream-bytes/100000") %>%
req_stream(show_bytes, buffer_kb = 32)
#> Got 32768 bytes
#> Got 32768 bytes
#> Got 32768 bytes
#> Got 1696 bytes