Fix closes issue 1673007 urllib.request to support HEAD requests with a new method arg.

This commit is contained in:
Senthil Kumaran 2011-10-16 23:54:44 +08:00
parent d8886fc831
commit de49d64dbc
5 changed files with 72 additions and 9 deletions

View file

@ -177,7 +177,8 @@ def request_host(request):
class Request:
def __init__(self, url, data=None, headers={},
origin_req_host=None, unverifiable=False):
origin_req_host=None, unverifiable=False,
method=None):
# unwrap('<URL:type://host/path>') --> 'type://host/path'
self.full_url = unwrap(url)
self.full_url, self.fragment = splittag(self.full_url)
@ -191,6 +192,7 @@ class Request:
origin_req_host = request_host(self)
self.origin_req_host = origin_req_host
self.unverifiable = unverifiable
self.method = method
self._parse()
def _parse(self):
@ -202,7 +204,10 @@ class Request:
self.host = unquote(self.host)
def get_method(self):
if self.data is not None:
"""Return a string indicating the HTTP request method."""
if self.method is not None:
return self.method
elif self.data is not None:
return "POST"
else:
return "GET"