R: Extract content from a request.

content {httr} | R Documentation

## 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, ...)

### Arguments

`x` | request object
`as` | desired type of output: `raw`, `text` or `parsed`. `content` attempts to automatically figure out which one is most appropriate, based on the content-type.
`type` | MIME type (aka internet media type) used to override the content type returned by the server. See http://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 parsed on to the parsing functions, if `as = "parsed"`

### Details

`content` currently knows about the following mime types:

- `text/html`: `read_html`

- `text/xml`: `read_xml`

- `text/csv`: `read_csv`

- `text/tab-separated-values`: `read_tsv`

- `application/json`: `fromJSON`

- `application/x-www-form-urlencoded`: `parse_query`

- `image/jpeg`: `readJPEG`

- `image/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

    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("http://cran.r-project.org/Rlogo.jpg"))
    plot(0:1, 0:1, type = "n")
    rasterImage(rlogo, 0, 0, 1, 1)

[Package httr version 1.3.1 Index]