From: Jérémy Bethmont Date: Mon, 8 Aug 2011 16:11:33 +0000 (+0200) Subject: Added support for URLs with path not encoded. X-Git-Tag: v0.6.1~3^2~3^2~11 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0b6dc091f50965250d9c421d8aadaa701186a1b9;p=services%2Fpython-requests.git Added support for URLs with path not encoded. --- diff --git a/requests/models.py b/requests/models.py index a67691d..bb15dc9 100644 --- a/requests/models.py +++ b/requests/models.py @@ -185,7 +185,7 @@ class Request(object): # (e.g. '/path/to/resource' instead of 'http://domain.tld/path/to/resource') if not urlparse(url).netloc: parent_url_components = urlparse(self.url) - url = '%s://%s/%s' % (parent_url_components.scheme, parent_url_components.netloc, url) + url = '%s://%s/%s' % (parent_url_components.scheme, parent_url_components.netloc, urllib.quote(urllib.unquote(url))) # http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4 if r.status_code is 303: @@ -231,9 +231,10 @@ class Request(object): def _build_url(self): """Build the actual URL to use""" - # Support for unicode domain names. + # Support for unicode domain names and paths. parsed_url = list(urlparse(self.url)) parsed_url[1] = parsed_url[1].encode('idna') + parsed_url[2] = urllib.quote(urllib.unquote(parsed_url[2])) self.url = urlunparse(parsed_url) if self._enc_params: