SF bug 622042: Don't expect response body from HEAD request.

Bug fix candidate.
This commit is contained in:
Jeremy Hylton 2003-05-05 16:13:58 +00:00
parent 581c36773a
commit c1b2cb9d8f
3 changed files with 25 additions and 4 deletions

View file

@ -208,10 +208,11 @@ class HTTPResponse:
# See RFC 2616 sec 19.6 and RFC 1945 sec 6 for details.
def __init__(self, sock, debuglevel=0, strict=0):
def __init__(self, sock, debuglevel=0, strict=0, method=None):
self.fp = sock.makefile('rb', 0)
self.debuglevel = debuglevel
self.strict = strict
self._method = method
self.msg = None
@ -326,7 +327,8 @@ class HTTPResponse:
# does the body have a fixed length? (of zero)
if (status == 204 or # No Content
status == 304 or # Not Modified
100 <= status < 200): # 1xx codes
100 <= status < 200 or # 1xx codes
self._method == 'HEAD'):
self.length = 0
# if the connection remains open, and we aren't using chunked, and
@ -497,6 +499,7 @@ class HTTPConnection:
self._buffer = []
self.__response = None
self.__state = _CS_IDLE
self._method = None
self._set_hostport(host, port)
if strict is not None:
@ -626,6 +629,8 @@ class HTTPConnection:
else:
raise CannotSendRequest()
# Save the method we use, we need it later in the response phase
self._method = method
if not url:
url = '/'
str = '%s %s %s' % (method, url, self._http_vsn_str)
@ -763,9 +768,11 @@ class HTTPConnection:
if self.debuglevel > 0:
response = self.response_class(self.sock, self.debuglevel,
strict=self.strict)
strict=self.strict,
method=self._method)
else:
response = self.response_class(self.sock, strict=self.strict)
response = self.response_class(self.sock, strict=self.strict,
method=self._method)
response.begin()
assert response.will_close != _UNKNOWN