Как использовать urllib.request для подключения к URL, который требует аутентификации через прокси, который также требует аутентификации - PullRequest
0 голосов
/ 30 января 2020

Я видел много случаев, подобных этому, чтобы использовать аутентификацию по 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, которая запрашивает аутентификацию за прокси-сервером, который также требует аутентификации.

Как мне этого добиться?

...