diff --git a/src/aioweb/responses.py b/src/aioweb/responses.py index 697598b..53f8bd1 100644 --- a/src/aioweb/responses.py +++ b/src/aioweb/responses.py @@ -92,7 +92,9 @@ class Response: """parsed JSON content, or None if not valid JSON""" try: return _json.loads(self.text()) - except _json.JSONDecodeError: + except (_json.JSONDecodeError, UnicodeDecodeError): + # text() decodes the body and can raise UnicodeDecodeError on a non-UTF-8 + # payload — that's a "not valid JSON" outcome, not an error to propagate return None def raise_for_status(self):