Extract content from a request.
Description
There are currently three ways to retrieve the contents of a request:
as a raw object (as = "raw"
), as a character vector,
(as = "text"
), and as parsed into an R object where possible,
(as = "parsed"
). If as
is not specified, content
does its best to guess which output is most appropriate.
Usage
content(x, as = NULL, type = NULL, encoding = NULL, ...)
content(x, as = NULL, type = NULL, encoding = NULL, ...)
Arguments
x |
request object |
as |
desired type of output: |
type |
MIME type (aka internet media type) used to override the content type returned by the server. See https://en.wikipedia.org/wiki/Internet_media_type for a list of common types. |
encoding |
For text, overrides the charset or the Latin1 (ISO-8859-1) default, if you know that the server is returning the incorrect encoding as the charset in the content-type. Use for text and parsed outputs. |
... |
Other parameters passed on to the parsing functions, if
|
Details
content
currently knows about the following mime types:
-
text/html
:xml2::read_html()
-
text/xml
:xml2::read_xml()
-
text/csv
:readr::read_csv()
-
text/tab-separated-values
:readr::read_tsv()
-
application/json
:jsonlite::fromJSON()
-
application/x-www-form-urlencoded
:parse_query
-
image/jpeg
:jpeg::readJPEG()
-
image/png
:png::readPNG()
as = "parsed"
is provided as a convenience only: if the type you
are trying to parse is not available, use as = "text"
and parse
yourself.
Value
For "raw", a raw vector.
For "text", a character vector of length 1. The character vector is always
re-encoded to UTF-8. If this encoding fails (usually because the page
declares an incorrect encoding), content()
will return NA
.
For "auto", a parsed R object.
WARNING
When using content()
in a package, DO NOT use on as = "parsed"
.
Instead, check the mime-type is what you expect, and then parse yourself.
This is safer, as you will fail informatively if the API changes, and
you will protect yourself against changes to httr.
See Also
Other response methods:
http_error()
,
http_status()
,
response()
,
stop_for_status()
Examples
## Not run: r <- POST("http://httpbin.org/post", body = list(a = 1, b = 2)) content(r) # automatically parses JSON cat(content(r, "text"), "\n") # text content content(r, "raw") # raw bytes from server rlogo <- content(GET("https://httpbin.org/image/png")) plot(0:1, 0:1, type = "n") rasterImage(rlogo, 0, 0, 1, 1) ## End(Not run)
## Not run: r <- POST("http://httpbin.org/post", body = list(a = 1, b = 2)) content(r) # automatically parses JSON cat(content(r, "text"), "\n") # text content content(r, "raw") # raw bytes from server rlogo <- content(GET("https://httpbin.org/image/png")) plot(0:1, 0:1, type = "n") rasterImage(rlogo, 0, 0, 1, 1) ## End(Not run)