You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
urllib2 passes fragment identifier to server #52527
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee='https://github.com/orsenthil'closed_at=<Date2010-08-08.11:47:46.183>created_at=<Date2010-04-01.16:08:31.765>labels= ['type-bug', 'library']
title='urllib2 passes fragment identifier to server'updated_at=<Date2010-08-08.11:47:46.182>user='https://github.com/methane'
>>> urllib2.urlopen("http://wave-robot-python-client.googlecode.com/svn/trunk/pydocs/index.html#module-wavelet")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\usr\Python2.6\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\usr\Python2.6\lib\urllib2.py", line 398, in open
response = meth(req, response)
File "C:\usr\Python2.6\lib\urllib2.py", line 511, in http_response
'http', request, response, code, msg, hdrs)
File "C:\usr\Python2.6\lib\urllib2.py", line 436, in error
return self._call_chain(*args)
File "C:\usr\Python2.6\lib\urllib2.py", line 370, in _call_chain
result = func(*args)
File "C:\usr\Python2.6\lib\urllib2.py", line 519, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 400: Bad Request
This happens when redirected URL contains fragment.
>>> urllib2.urlopen("http://goo.gl/z1d5")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\usr\Python2.6\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\usr\Python2.6\lib\urllib2.py", line 398, in open
response = meth(req, response)
File "C:\usr\Python2.6\lib\urllib2.py", line 511, in http_response
'http', request, response, code, msg, hdrs)
File "C:\usr\Python2.6\lib\urllib2.py", line 430, in error
result = self._call_chain(*args)
File "C:\usr\Python2.6\lib\urllib2.py", line 370, in _call_chain
result = func(*args)
File "C:\usr\Python2.6\lib\urllib2.py", line 606, in http_error_302
return self.parent.open(new, timeout=req.timeout)
File "C:\usr\Python2.6\lib\urllib2.py", line 398, in open
response = meth(req, response)
File "C:\usr\Python2.6\lib\urllib2.py", line 511, in http_response
'http', request, response, code, msg, hdrs)
File "C:\usr\Python2.6\lib\urllib2.py", line 436, in error
return self._call_chain(*args)
File "C:\usr\Python2.6\lib\urllib2.py", line 370, in _call_chain
result = func(*args)
File "C:\usr\Python2.6\lib\urllib2.py", line 519, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 400: Bad Request
Fixed in revision 83818(py3k), 83819 (release31-maint) and 83820 (release27-maint).
David, a couple of comments on your patch.
Request method was from urllib2, so the proper place of tests were test_urllib2. This already had Requests test so some additional tests were only required.
Also, now the fragments are removed and sent to the server, a proper response could be obtained, it can tested via 'network' tests in test_urllib2net.
You might check the svn diffs to see the changes made.
Thanks for the patch.
Activity
methane commentedon Apr 1, 2010
>>> urllib2.urlopen("http://wave-robot-python-client.googlecode.com/svn/trunk/pydocs/index.html#module-wavelet") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\usr\Python2.6\lib\urllib2.py", line 126, in urlopen return _opener.open(url, data, timeout) File "C:\usr\Python2.6\lib\urllib2.py", line 398, in open response = meth(req, response) File "C:\usr\Python2.6\lib\urllib2.py", line 511, in http_response 'http', request, response, code, msg, hdrs) File "C:\usr\Python2.6\lib\urllib2.py", line 436, in error return self._call_chain(*args) File "C:\usr\Python2.6\lib\urllib2.py", line 370, in _call_chain result = func(*args) File "C:\usr\Python2.6\lib\urllib2.py", line 519, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 400: Bad RequestThis happens when redirected URL contains fragment.
>>> urllib2.urlopen("http://goo.gl/z1d5") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\usr\Python2.6\lib\urllib2.py", line 126, in urlopen return _opener.open(url, data, timeout) File "C:\usr\Python2.6\lib\urllib2.py", line 398, in open response = meth(req, response) File "C:\usr\Python2.6\lib\urllib2.py", line 511, in http_response 'http', request, response, code, msg, hdrs) File "C:\usr\Python2.6\lib\urllib2.py", line 430, in error result = self._call_chain(*args) File "C:\usr\Python2.6\lib\urllib2.py", line 370, in _call_chain result = func(*args) File "C:\usr\Python2.6\lib\urllib2.py", line 606, in http_error_302 return self.parent.open(new, timeout=req.timeout) File "C:\usr\Python2.6\lib\urllib2.py", line 398, in open response = meth(req, response) File "C:\usr\Python2.6\lib\urllib2.py", line 511, in http_response 'http', request, response, code, msg, hdrs) File "C:\usr\Python2.6\lib\urllib2.py", line 436, in error return self._call_chain(*args) File "C:\usr\Python2.6\lib\urllib2.py", line 370, in _call_chain result = func(*args) File "C:\usr\Python2.6\lib\urllib2.py", line 519, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 400: Bad Requesturllib2.Request.get_selector() should be:
dstanek commentedon Aug 3, 2010
Added a patch to fix this behavior.
dstanek commentedon Aug 3, 2010
I have also uploaded my patch to http://codereview.appspot.com/1918042 so easier viewing.
orsenthil commentedon Aug 8, 2010
Fixed in revision 83818(py3k), 83819 (release31-maint) and 83820 (release27-maint).
David, a couple of comments on your patch.
You might check the svn diffs to see the changes made.
Thanks for the patch.