summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/httplib.py15
-rw-r--r--Lib/test/test_httplib.py4
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)