diff options
-rw-r--r-- | Lib/httplib.py | 15 | ||||
-rw-r--r-- | Lib/test/test_httplib.py | 4 |
2 files changed, 10 insertions, 9 deletions
diff --git a/Lib/httplib.py b/Lib/httplib.py index 2a74e54..5c15f9d 100644 --- a/Lib/httplib.py +++ b/Lib/httplib.py @@ -711,8 +711,8 @@ class HTTPConnection: Appends an extra \\r\\n to the buffer. """ - self._buffer.extend(("", "")) - msg = "\r\n".join(self._buffer) + self._buffer.extend((b"", b"")) + msg = b"\r\n".join(self._buffer) del self._buffer[:] self.send(msg) @@ -758,9 +758,10 @@ class HTTPConnection: self._method = method if not url: url = '/' - str = '%s %s %s' % (method, url, self._http_vsn_str) + request = '%s %s %s' % (method, url, self._http_vsn_str) - self._output(str) + # Non-ASCII characters should have been eliminated earlier + self._output(request.encode('ascii')) if self._http_vsn == 11: # Issue some standard headers for better HTTP/1.1 compliance @@ -831,8 +832,8 @@ class HTTPConnection: if self.__state != _CS_REQ_STARTED: raise CannotSendHeader() - str = '%s: %s' % (header, value) - self._output(str) + header = '%s: %s' % (header, value) + self._output(header.encode('ascii')) def endheaders(self): """Indicate that the last header line has been sent to the server.""" @@ -846,7 +847,6 @@ class HTTPConnection: def request(self, method, url, body=None, headers={}): """Send a complete request to the server.""" - try: self._send_request(method, url, body, headers) except socket.error as v: @@ -888,6 +888,7 @@ class HTTPConnection: self.endheaders() if body: + if isinstance(body, str): body = body.encode('ascii') self.send(body) def getresponse(self): diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 9238eea..d18ea2b 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -11,7 +11,7 @@ class FakeSocket: def __init__(self, text, fileclass=StringIO.StringIO): self.text = text self.fileclass = fileclass - self.data = '' + self.data = b'' def sendall(self, data): self.data += data @@ -54,7 +54,7 @@ class HeaderTests(TestCase): kv = item.split(':') if len(kv) > 1: # item is a 'Key: Value' header string - lcKey = kv[0].lower() + lcKey = kv[0].decode('ascii').lower() self.count.setdefault(lcKey, 0) self.count[lcKey] += 1 list.append(self, item) |