diff --git a/openapi_core/contrib/requests/requests.py b/openapi_core/contrib/requests/requests.py index 00a462f5..c39110cc 100644 --- a/openapi_core/contrib/requests/requests.py +++ b/openapi_core/contrib/requests/requests.py @@ -68,7 +68,10 @@ def body(self) -> Optional[str]: if self.request.body is None: return None if isinstance(self.request.body, bytes): - return self.request.body.decode("utf-8") + try: + return self.request.body.decode("utf-8") + except UnicodeDecodeError: + return self.request.body assert isinstance(self.request.body, str) # TODO: figure out if request._body_position is relevant return self.request.body diff --git a/openapi_core/contrib/requests/responses.py b/openapi_core/contrib/requests/responses.py index 66343802..f31e2ee5 100644 --- a/openapi_core/contrib/requests/responses.py +++ b/openapi_core/contrib/requests/responses.py @@ -12,7 +12,10 @@ def __init__(self, response: Response): @property def data(self) -> str: assert isinstance(self.response.content, bytes) - return self.response.content.decode("utf-8") + try: + return self.response.content.decode("utf-8") + except UnicodeDecodeError: + return self.response.content @property def status_code(self) -> int:
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: