mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
Fixed URI re-encoding on Python 3 (Issue #369).
Request.full_url now performs requoting of the path (like it does in Python 2). Request.path_url no longer quotes the already-quoted path (double quoting). Fixed utils.requote_path so it works properly in Python 3.
This commit is contained in:
+1
-4
@@ -324,7 +324,7 @@ class Request(object):
|
||||
if isinstance(path, str):
|
||||
path = path.encode('utf-8')
|
||||
|
||||
path = requote_path(path)
|
||||
path = requote_path(path)
|
||||
|
||||
url = (urlunparse([ scheme, netloc, path, params, query, fragment ]))
|
||||
|
||||
@@ -352,9 +352,6 @@ class Request(object):
|
||||
if not path:
|
||||
path = '/'
|
||||
|
||||
if is_py3:
|
||||
path = quote(path.encode('utf-8'))
|
||||
|
||||
url.append(path)
|
||||
|
||||
query = p.query
|
||||
|
||||
+3
-3
@@ -403,6 +403,6 @@ def requote_path(path):
|
||||
This function passes the given path through an unquote/quote cycle to
|
||||
ensure that it is fully and consistently quoted.
|
||||
"""
|
||||
parts = path.split(b"/")
|
||||
parts = (quote(unquote(part), safe=b"") for part in parts)
|
||||
return b"/".join(parts)
|
||||
parts = path.split("/")
|
||||
parts = (quote(unquote(part), safe="") for part in parts)
|
||||
return "/".join(parts)
|
||||
|
||||
Reference in New Issue
Block a user