From: Jérémy Bethmont Date: Fri, 2 Sep 2011 13:06:58 +0000 (+0200) Subject: Only the path should be encoded (not the query, otherwise it makes a wrong redirection). X-Git-Tag: v0.8.0~94^2~113^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=824d54f13111387df941f7e6f02b8ac064bec04e;p=services%2Fpython-requests.git Only the path should be encoded (not the query, otherwise it makes a wrong redirection). --- diff --git a/requests/models.py b/requests/models.py index 2d7fc8f..4af0597 100644 --- a/requests/models.py +++ b/requests/models.py @@ -224,8 +224,11 @@ class Request(object): # Facilitate non-RFC2616-compliant 'location' headers # (e.g. '/path/to/resource' instead of 'http://domain.tld/path/to/resource') - if not urlparse(url).netloc: - url = urljoin(r.url, urllib.quote(urllib.unquote(url))) + parsed_url = urlparse(url) + if not parsed_url.netloc: + parsed_url = list(parsed_url) + parsed_url[2] = urllib.quote(urllib.unquote(parsed_url[2])) + url = urljoin(r.url, str(urlunparse(parsed_url))) # http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4 if r.status_code is codes.see_other: