Do the best with error bodies in the face of the unknown

Some HTTP back ends may not return the response body type. In that
case, try parsing the response as JSON, in case it is. If the body
type is available, then parse the body as JSON when it is, in fact,
JSON.