Open
Description
This code works in python 3 but not python 2.7
Based on Basic Auth Example in Python Manual
from future import standard_library
standard_library.install_aliases()
import urllib.request
# Create an OpenerDirector with support for Basic HTTP Authentication...
auth_handler = urllib.request.HTTPBasicAuthHandler()
auth_handler.add_password(realm='Fake Realm',
uri='https://httpbin.org',
user='a',
passwd='b')
opener = urllib.request.build_opener(auth_handler)
# ...and install it globally so it can be used with urlopen.
urllib.request.install_opener(opener)
urllib.request.urlopen('https://httpbin.org/basic-auth/a/b')
Python 2 gives this error
Traceback (most recent call last):
File "t2.py", line 14, in <module>
urllib.request.urlopen('https://httpbin.org/basic-auth/a/b')
File "/Users/tingle/code/ezid/ve27/lib/python2.7/site-packages/future/backports/urllib/request.py", line 171, in urlopen
return opener.open(url, data, timeout)
File "/Users/tingle/code/ezid/ve27/lib/python2.7/site-packages/future/backports/urllib/request.py", line 500, in open
response = meth(req, response)
File "/Users/tingle/code/ezid/ve27/lib/python2.7/site-packages/future/backports/urllib/request.py", line 612, in http_response
'http', request, response, code, msg, hdrs)
File "/Users/tingle/code/ezid/ve27/lib/python2.7/site-packages/future/backports/urllib/request.py", line 538, in error
return self._call_chain(*args)
File "/Users/tingle/code/ezid/ve27/lib/python2.7/site-packages/future/backports/urllib/request.py", line 466, in _call_chain
result = func(*args)
File "/Users/tingle/code/ezid/ve27/lib/python2.7/site-packages/future/backports/urllib/request.py", line 620, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
future.backports.urllib.error.HTTPError: HTTP Error 401: UNAUTHORIZED