mirror of
https://github.com/python/cpython.git
synced 2024-11-30 21:34:17 +08:00
Fix issue14826 - make urllib.request.Request quoted url consistent with URLOpener open method.
Patch contributed by Stephen Thorne.
This commit is contained in:
commit
540715a369
@ -1272,6 +1272,11 @@ class RequestTests(unittest.TestCase):
|
|||||||
request.method = 'HEAD'
|
request.method = 'HEAD'
|
||||||
self.assertEqual(request.get_method(), 'HEAD')
|
self.assertEqual(request.get_method(), 'HEAD')
|
||||||
|
|
||||||
|
def test_quote_url(self):
|
||||||
|
Request = urllib.request.Request
|
||||||
|
request = Request("http://www.python.org/foo bar")
|
||||||
|
self.assertEqual(request.full_url, "http://www.python.org/foo%20bar")
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
support.run_unittest(
|
support.run_unittest(
|
||||||
|
@ -263,7 +263,8 @@ class Request:
|
|||||||
origin_req_host=None, unverifiable=False,
|
origin_req_host=None, unverifiable=False,
|
||||||
method=None):
|
method=None):
|
||||||
# unwrap('<URL:type://host/path>') --> 'type://host/path'
|
# unwrap('<URL:type://host/path>') --> 'type://host/path'
|
||||||
self.full_url = unwrap(url)
|
self.full_url = unwrap(to_bytes(url))
|
||||||
|
self.full_url = quote(self.full_url, safe="%/:=&?~#+!$,;'@()*[]|")
|
||||||
self.full_url, self.fragment = splittag(self.full_url)
|
self.full_url, self.fragment = splittag(self.full_url)
|
||||||
self.data = data
|
self.data = data
|
||||||
self.headers = {}
|
self.headers = {}
|
||||||
|
@ -23,6 +23,11 @@ Core and Builtins
|
|||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #14826: Quote urls in urllib.request.Request identically to how they
|
||||||
|
are quoted by urllib.request.URLopener. Allows urls to spaces in them to work
|
||||||
|
transparently with urllib.request.urlopen(...). Patch contributed by Stephen
|
||||||
|
Thorne.
|
||||||
|
|
||||||
- Issue #5931: wsgiref environ variable SERVER_SOFTWARE will specify an
|
- Issue #5931: wsgiref environ variable SERVER_SOFTWARE will specify an
|
||||||
implementation specific term like Cpython, Jython instead of generic "Python"
|
implementation specific term like Cpython, Jython instead of generic "Python"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user