Я видел много случаев, подобных этому, чтобы использовать аутентификацию по URL:
import urllib.request
auth_user = 'my_user'
auth_passwd = 'my_pass'
url = 'https://my_url.internal:88/'
passman = urllib.request.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, auth_user, auth_passwd)
authhandler = urllib.request.HTTPBasicAuthHandler(passman)
opener = urllib.request.build_opener(authhandler)
urllib.request.install_opener(opener)
res = urllib.request.urlopen(url)
res_body = res.read()
print(res_body.decode('utf-8'))
или вот так, чтобы использовать прокси:
import urllib.request
proxy_url = 'http://user:pass@10.1.2.3:80'
proxy = req.ProxyHandler({'http': proxy_url})
auth = req.HTTPBasicAuthHandler()
opener = req.build_opener(proxy, auth, req.HTTPHandler)
req.install_opener(opener)
conn = req.urlopen('http://google.com')
return_str = conn.read()
Но мне нужен способ объединить и то, и другое, чтобы я мог подключиться к службе http, которая запрашивает аутентификацию за прокси-сервером, который также требует аутентификации.
Как мне этого добиться?