在urllib.requests
中,您可以构建可以传递多个身份验证处理程序的开启工具。你可以用Python请求做同样的事情吗?
请求doc站点上的示例显示一次只传递一个auth处理程序,但我需要传递两个。这可能吗?
有人可以提供关于如何做到这一点的语法/文档吗?
以下是我将如何在urllib.requests包中执行此操作:
password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()
# Add the username and password.
# If we knew the realm, we could use it instead of None.
top_level_url = "http://example.com/foo/"
password_mgr.add_password(None, top_level_url, username, password)
handler1 = urllib.request.HTTPBasicAuthHandler(password_mgr)
handler2 = urllib.request.HTTPDigestAuthHandler(password_mgr)
# create "opener" (OpenerDirector instance)
opener = urllib.request.build_opener([handler1, handler2])
# use the opener to fetch a URL
opener.open(a_url)
# Install the opener.
# Now all calls to urllib.request.urlopen use our opener.
urllib.request.install_opener(opener)
答案 0 :(得分:0)
似乎请求不支持此功能。我在github问题页面上发布了这个问题。建议是使用:http://toolbelt.readthedocs.io/en/latest/authentication.html#guessauth
我还没有尝试过,但它似乎是一个可行的解决方案。