mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
loosen URL handling for non-native URL schemes
This commit is contained in:
@@ -141,3 +141,4 @@ Patches and Suggestions
|
|||||||
- Vikram Oberoi @voberoi
|
- Vikram Oberoi @voberoi
|
||||||
- Can Ibanoglu <can.ibanoglu@gmail.com> @canibanoglu
|
- Can Ibanoglu <can.ibanoglu@gmail.com> @canibanoglu
|
||||||
- Thomas Weißschuh <thomas@t-8ch.de> @t-8ch
|
- Thomas Weißschuh <thomas@t-8ch.de> @t-8ch
|
||||||
|
- Jayson Vantuyl <jayson@aggressive.ly> @kagato
|
||||||
|
|||||||
@@ -320,6 +320,11 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
|||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
# Don't do any URL preparation for oddball schemes
|
||||||
|
if ':' in url and not url.lower().startswith('http'):
|
||||||
|
self.url = url
|
||||||
|
return
|
||||||
|
|
||||||
# Support for unicode domain names and paths.
|
# Support for unicode domain names and paths.
|
||||||
scheme, auth, host, port, path, query, fragment = parse_url(url)
|
scheme, auth, host, port, path, query, fragment = parse_url(url)
|
||||||
|
|
||||||
|
|||||||
@@ -683,6 +683,18 @@ class RequestsTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
assert p.headers['Content-Length'] == length
|
assert p.headers['Content-Length'] == length
|
||||||
|
|
||||||
|
def test_oddball_schemes_dont_check_URLs(self):
|
||||||
|
test_urls = (
|
||||||
|
'data:image/gif;base64,R0lGODlhAQABAHAAACH5BAUAAAAALAAAAAABAAEAAAICRAEAOw==',
|
||||||
|
'file:///etc/passwd',
|
||||||
|
'magnet:?xt=urn:btih:be08f00302bc2d1d3cfa3af02024fa647a271431',
|
||||||
|
)
|
||||||
|
for test_url in test_urls:
|
||||||
|
req = requests.Request('GET', test_url)
|
||||||
|
preq = req.prepare()
|
||||||
|
assert test_url == preq.url
|
||||||
|
|
||||||
|
|
||||||
class TestContentEncodingDetection(unittest.TestCase):
|
class TestContentEncodingDetection(unittest.TestCase):
|
||||||
|
|
||||||
def test_none(self):
|
def test_none(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user