diff options
author | Senthil Kumaran <orsenthil@gmail.com> | 2010-04-28 17:20:43 (GMT) |
---|---|---|
committer | Senthil Kumaran <orsenthil@gmail.com> | 2010-04-28 17:20:43 (GMT) |
commit | ed9204346e02a2353752a38bf0381b622938c0bb (patch) | |
tree | e2c98bef56d94ba3701b48bc4ed5cf82e288f662 /Lib | |
parent | ad709ee06bbf7aec47c92b2ac29bc21f9e05a93d (diff) | |
download | cpython-ed9204346e02a2353752a38bf0381b622938c0bb.zip cpython-ed9204346e02a2353752a38bf0381b622938c0bb.tar.gz cpython-ed9204346e02a2353752a38bf0381b622938c0bb.tar.bz2 |
Fixed Issue6312 - httplib fails with HEAD requests to pages with "transfer-encoding: chunked"
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/httplib.py | 3 | ||||
-rw-r--r-- | Lib/test/test_httplib.py | 17 |
2 files changed, 20 insertions, 0 deletions
diff --git a/Lib/httplib.py b/Lib/httplib.py index 43c8797..5eb3f0d 100644 --- a/Lib/httplib.py +++ b/Lib/httplib.py @@ -524,6 +524,9 @@ class HTTPResponse: if self.fp is None: return '' + if self._method == 'HEAD': + return '' + if self.chunked: return self._read_chunked(amt) diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 107b904..a618c43 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -212,6 +212,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 = httplib.HTTPResponse(sock, method="HEAD") + resp.begin() + self.assertEquals(resp.read(), '') + 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\n' 'Content-Length: -1\r\n\r\nHello\r\n') |