Convenience wrapper for web POST operations. Caching, setting the user-agent string, and basic checking of the result are handled.

cached_post(
  url,
  body,
  type = "text",
  caching = sbdi_config()$caching,
  verbose = sbdi_config()$verbose,
  content_type,
  encoding = sbdi_config()$text_encoding,
  ...
)

Arguments

url

string: the url of the page to retrieve

body

string: the body to POST

type

string: the expected content type. Either "text" (default), "json", or "filename" (this caches the content directly to a file and returns the filename without attempting to read it in)

caching

string: caching behaviour, by default from sbdi_config()$caching

verbose

string: verbose behaviour, by default from sbdi_config()$verbose

content_type

string: set the Content-Type header to a specific value (needed for e.g. search_names), default is unset

encoding

encoding

...

additional arguments passed to curlPerform

Value

for type=="text" the content is returned as text. For type=="json", the content is parsed using jsonlite::fromJSON. For "filename", the name of the stored file is returned.

Details

Depending on the value of caching, the page is either retrieved from the cache or from the url, and stored in the cache if appropriate. The user-agent string is set according to sbdi_config()$user_agent. The returned response (if not from cached file) is also passed to check_status_code().

References

https://api.biodiversitydata.se/