Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/r-lib/httr

httr: a friendly http package for R
https://github.com/r-lib/httr

api curl http r

Last synced: about 1 month ago
JSON representation

httr: a friendly http package for R

Awesome Lists containing this project

README

        

# httr

## Status

[![Lifecycle: superseded](https://img.shields.io/badge/lifecycle-superseded-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html#superseded)

httr is superseded: only changes necessary to keep it on CRAN will be made. We recommend using [httr2](https://httr2.r-lib.org) instead.

---

[![CRAN status](https://www.r-pkg.org/badges/version/httr)](https://cran.r-project.org/package=httr)
[![R-CMD-check](https://github.com/r-lib/httr/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/r-lib/httr/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/r-lib/httr/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-lib/httr?branch=main)

The aim of httr is to provide a wrapper for the [curl](https://cran.r-project.org/package=curl) package, customised to the demands of modern web APIs.

Key features:

* Functions for the most important http verbs: `GET()`, `HEAD()`, `PATCH()`,
`PUT()`, `DELETE()` and `POST()`.

* Automatic connection sharing across requests to the same website (by
default, curl handles are managed automatically), cookies are maintained
across requests, and a up-to-date root-level SSL certificate store is used.

* Requests return a standard reponse object that captures the http status line,
headers and body, along with other useful information.

* Response content is available with `content()` as a raw vector (`as =
"raw"`), a character vector (`as = "text"`), or parsed into an R object
(`as = "parsed"`), currently for html, xml, json, png and jpeg.

* You can convert http errors into R errors with `stop_for_status()`.

* Config functions make it easier to modify the request in common ways:
`set_cookies()`, `add_headers()`, `authenticate()`, `use_proxy()`,
`verbose()`, `timeout()`, `content_type()`, `accept()`, `progress()`.

* Support for OAuth 1.0 and 2.0 with `oauth1.0_token()` and `oauth2.0_token()`.
The demo directory has eight OAuth demos: four for 1.0 (twitter, vimeo,
withings and yahoo) and four for 2.0 (facebook, github, google, linkedin).
OAuth credentials are automatically cached within a project.

httr wouldn't be possible without the hard work of the authors of [curl](https://cran.r-project.org/package=curl) and [libcurl](https://curl.se/). Thanks! httr is inspired by http libraries in other languages, such as [Resty](http://beders.github.io/Resty/Resty/Examples.html), [Requests](https://requests.readthedocs.io/en/latest/) and [httparty](https://github.com/jnunemaker/httparty/tree/master).

## Installation

To get the current released version from CRAN:

```R
install.packages("httr")
```

To get the current development version from github:

```R
# install.packages("pak")
pak::pak("r-lib/httr")
```

## Code of Conduct

Please note that the httr project is released with a [Contributor Code of Conduct](https://httr.r-lib.org/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.