diff options
author | Senthil Kumaran <orsenthil@gmail.com> | 2010-04-28 17:44:30 (GMT) |
---|---|---|
committer | Senthil Kumaran <orsenthil@gmail.com> | 2010-04-28 17:44:30 (GMT) |
commit | 2682638ee143fdf6fb716221c31cabd10ebd5198 (patch) | |
tree | 90a715bc55bc0b9da4a2999c9995617bed4e864c /Lib | |
parent | 95ff5249334e1322a11f9063ea1aabe1c4a3326e (diff) | |
download | cpython-2682638ee143fdf6fb716221c31cabd10ebd5198.zip cpython-2682638ee143fdf6fb716221c31cabd10ebd5198.tar.gz cpython-2682638ee143fdf6fb716221c31cabd10ebd5198.tar.bz2 |
Merged revisions 80587 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r80587 | senthil.kumaran | 2010-04-28 23:09:48 +0530 (Wed, 28 Apr 2010) | 9 lines
Merged revisions 80583 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r80583 | senthil.kumaran | 2010-04-28 22:50:43 +0530 (Wed, 28 Apr 2010) | 3 lines
Fixed Issue6312 - httplib fails with HEAD requests to pages with "transfer-encoding: chunked"
........
................
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/http/client.py | 3 | ||||
-rw-r--r-- | Lib/test/test_httplib.py | 17 |
2 files changed, 20 insertions, 0 deletions
diff --git a/Lib/http/client.py b/Lib/http/client.py index 1de34ef..f9b74e4 100644 --- a/Lib/http/client.py +++ b/Lib/http/client.py @@ -487,6 +487,9 @@ class HTTPResponse(io.RawIOBase): if self.fp is None: return b"" + if self._method == "HEAD": + return b"" + if self.chunked: return self._read_chunked(amt) diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 37cda5d..98db2b7 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -219,6 +219,23 @@ class BasicTest(TestCase): finally: resp.close() + def test_chunked_head(self): + chunked_start = ( + 'HTTP/1.1 200 OK\r\n' + 'Transfer-Encoding: chunked\r\n\r\n' + 'a\r\n' + 'hello world\r\n' + '1\r\n' + 'd\r\n' + ) + sock = FakeSocket(chunked_start + '0\r\n') + resp = client.HTTPResponse(sock, method="HEAD") + resp.begin() + self.assertEquals(resp.read(), b'') + self.assertEquals(resp.status, 200) + self.assertEquals(resp.reason, 'OK') + resp.close() + def test_negative_content_length(self): sock = FakeSocket( 'HTTP/1.1 200 OK\r\nContent-Length: -1\r\n\r\nHello\r\n') |