A different content type than expected often leads to an error in parsing the response body. This function checks that the content type of the response is as expected and fails otherwise.
resp_check_content_type(
resp,
valid_types = NULL,
valid_suffix = NULL,
check_type = TRUE,
call = caller_env()
)A httr2 response object, created by req_perform().
A character vector of valid MIME types. Should only
be specified with type/subtype.
A string given an "structured media type" suffix.
Should the type actually be checked? Provided as a
convenience for when using this function inside resp_body_* helpers.
The execution environment of a currently
running function, e.g. caller_env(). The function will be
mentioned in error messages as the source of the error. See the
call argument of abort() for more information.
Called for its side-effect; erroring if the response does not have the expected content type.
resp <- response(headers = list(`content-type` = "application/json"))
resp_check_content_type(resp, "application/json")
try(resp_check_content_type(resp, "application/xml"))
#> Error in eval(expr, envir) :
#> Unexpected content type "application/json".
#> • Expecting type "application/xml"
# `types` can also specify multiple valid types
resp_check_content_type(resp, c("application/xml", "application/json"))