From dd4355401b72577f2c781468b562b722ee1cab92 Mon Sep 17 00:00:00 2001 From: immerrr Date: Wed, 3 Feb 2021 10:38:03 +0100 Subject: [PATCH] Decode request/response headers --- uvicorn/logging.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/uvicorn/logging.py b/uvicorn/logging.py index f4544d477f..addd630a11 100644 --- a/uvicorn/logging.py +++ b/uvicorn/logging.py @@ -133,7 +133,10 @@ def __init__(self, scope): @property def request_headers(self): if self._request_headers is None: - self._request_headers = dict(self.scope['headers']) + self._request_headers = { + k.decode('ascii'): v.decode('ascii') + for k, v in self.scope['headers'] + } return self._request_headers @property @@ -144,7 +147,10 @@ def duration(self): def on_asgi_message(self, message): if message['type'] == 'http.response.start': self.status_code = message['status'] - self.response_headers = dict(message['headers']) + self.response_headers = { + k.decode('ascii'): v.decode('ascii') + for k, v in message['headers'] + } elif message['type'] == 'http.response.body': self.response_length += len(message.get('body', ''))