From 75ec05c85e597e66128c68c124f8a0376a5db7f2 Mon Sep 17 00:00:00 2001 From: Brad Dixon Date: Thu, 4 Jun 2020 20:26:31 -0400 Subject: HTTP2 response reason is None, render as '' in property. Fixes an error triggered when displaying an HTTP2 response loaded from a file. --- mitmproxy/net/http/response.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'mitmproxy') diff --git a/mitmproxy/net/http/response.py b/mitmproxy/net/http/response.py index 2e864405..c4dbf408 100644 --- a/mitmproxy/net/http/response.py +++ b/mitmproxy/net/http/response.py @@ -122,10 +122,14 @@ class Response(message.Message): def reason(self): """ HTTP Reason Phrase, e.g. "Not Found". - This is always :py:obj:`None` for HTTP2 requests, because HTTP2 responses do not contain a reason phrase. + HTTP2 responses do not contain a reason phrase and self.data.reason will be :py:obj:`None`. + When :py:obj:`None` return an empty reason phrase so that functions expecting a string work properly. """ # Encoding: http://stackoverflow.com/a/16674906/934719 - return self.data.reason.decode("ISO-8859-1", "surrogateescape") + if self.data.reason is not None: + return self.data.reason.decode("ISO-8859-1", "surrogateescape") + else: + return "" @reason.setter def reason(self, reason): -- cgit v1.2.3