From: Jeremy Hylton Date: Fri, 3 Aug 2007 13:30:02 +0000 (+0000) Subject: Fix status line parsing for http response. X-Git-Tag: v3.0a1~549 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=811fc1493593a07288ef125ec733454befd4f7ee;p=python Fix status line parsing for http response. --- diff --git a/Lib/httplib.py b/Lib/httplib.py index 5c15f9dd19..297f1e3f32 100644 --- a/Lib/httplib.py +++ b/Lib/httplib.py @@ -264,7 +264,7 @@ class HTTPMessage(mimetools.Message): except IOError: startofline = tell = None self.seekable = 0 - line = self.fp.readline() + line = str(self.fp.readline(), "iso-8859-1") if not line: self.status = 'EOF in headers' break @@ -317,6 +317,11 @@ class HTTPResponse: # See RFC 2616 sec 19.6 and RFC 1945 sec 6 for details. + # The bytes from the socket object are iso-8859-1 strings. + # See RFC 2616 sec 2.2 which notes an exception for MIME-encoded + # text following RFC 2047. The basic status line parsing only + # accepts iso-8859-1. + def __init__(self, sock, debuglevel=0, strict=0, method=None): self.fp = sock.makefile('rb', 0) self.debuglevel = debuglevel @@ -337,7 +342,7 @@ class HTTPResponse: def _read_status(self): # Initialize with Simple-Response defaults - line = self.fp.readline() + line = str(self.fp.readline(), "iso-8859-1") if self.debuglevel > 0: print("reply:", repr(line)) if not line: