HTTP Error Helpers

HTTP error helpers. Methods included for general purpose HTTP error handling, as well as individual methods for every HTTP status code, both via status code numbers as well as their descriptive names. Supports ability to adjust behavior to stop, message or warning. Includes ability to use custom whisker template to have any configuration of status code, short description, and verbose message. Currently supports integration with 'crul', 'curl', and 'httr'.


Build Status cran version rstudio mirror downloads

fauxpas does http errors

  • HTTP error classes more in line with Ruby/Python/Etc.
  • An error class for each HTTP status in case a user wants to be specific to an HTTP status code, and general purpose handlers for any error
  • Work with any of the major R http clients: crul, curl, httr, (maybe RCurl later)
  • Provide flexiblity for what to do on an HTTP error, including custom functions and message templates

Info Links:

CRAN version

install.packages("fauxpas")

Dev version

devtools::install_github("ropenscilabs/fauxpas")
library("fauxpas")

use with crul

library("crul")
cli <- HttpClient$new("https://httpbin.org/status/414")
res <- cli$get()
http(res)
#> Error: Request-URI Too Long (HTTP 414).
http414(res)
#> Error: Request-URI Too Long (HTTP 414).
x <- HTTPRequestURITooLong$new()
x$do_verbose(res)
#> Error: Request-URI Too Long (HTTP 414).
#> - The server is refusing to service the request because the Request-URI is
#>    longer than the server is willing to interpret. This rare condition is only likely
#>    to occur when a client has improperly converted a POST request to a GET request
#>    with long query information, when the client has descended into a URI black hole
#>    of redirection (e.g., a redirected URI prefix that points to a suffix of itself),
#>    or when the server is under attack by a client attempting to exploit security
#>    holes present in some servers using fixed-length buffers for reading or
#>    manipulating the Request-URI.

use with curl

library("curl")
h <- curl::new_handle()
curl::handle_setopt(h)
resp <- curl::curl_fetch_memory("https://httpbin.org/status/404", h)
http(resp)
#> Error: Not Found (HTTP 404).
http404(resp)
#> Error: Not Found (HTTP 404).
x <- HTTPNotFound$new()
x$do_verbose(resp)
#> Error:  Not Found (HTTP 404).
#>  - The server has not found anything matching the Request-URI. No indication is
#> given of whether the condition is temporary or permanent. The 410 (Gone) status
#> code SHOULD be used if the server knows, through some internally configurable
#> mechanism, that an old resource is permanently unavailable and has no forwarding
#> address. #> This status code is commonly used when the server does not wish to
#> reveal exactly why the request has been refused, or when no other response is
#> applicable.

use with httr

library("httr")
res <- GET("https://httpbin.org/status/405")
http405(res)
#> Error: Method Not Allowed (HTTP 405).
x <- HTTPMethodNotAllowed$new()
x$do_verbose(res)
#> Error: Method Not Allowed (HTTP 405).
#>  - The method specified in the Request-Line is not allowed for the resource
#> identified by the Request-URI. The response MUST include an Allow header
#> containing a list of valid methods for the requested resource.

Meta

  • Please report any issues or bugs
  • License: MIT
  • Get citation information for fauxpas in R doing citation(package = 'fauxpas')
  • Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

rofooter

News

fauxpas 0.2.0

NEW FEATURES

  • New function find_error_class() for a user to get a HTTP* class object with just the status code (#10)
  • Added a vignette (#4)
  • Added an additional object type that fauxpas responds to: the Response from the webmockr package and the VcrResponse from the vcr package (#9)

MINOR IMPROVEMENTS

  • behavior_type variable in the Error class object is now a private variable, and can be set with a new method $set_behavior() (#7)
  • For http*() S3 list methods added additional checks for response objects from curl package that are simple lists, so are challenging to verify (#5)
  • Added tests for all http* methods via a generator (#11)

BUG FIXES

  • Fixed message_template behavior, see above related comment about new message template param (#8)

fauxpas 0.1.0

NEW FEATURES

  • Released to CRAN.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("fauxpas")

0.2.0 by Scott Chamberlain, a year ago


https://github.com/ropenscilabs/fauxpas


Report a bug at https://github.com/ropenscilabs/fauxpas/issues


Browse source code at https://github.com/cran/fauxpas


Authors: Scott Chamberlain [aut, cre]


Documentation:   PDF Manual  


Task views: Web Technologies and Services


MIT + file LICENSE license


Imports R6, httpcode, whisker

Suggests crul, curl, httr, testthat, knitr, rmarkdown


Imported by rbraries, rcitoid, rorcid, webmockr.

Suggested by crul.


See at CRAN