是否有一个python http客户端可以自动对几种身份验证类型执行身份验证?
我目前正在使用urllib2或curl对不同的Trac、Jira、Twiki和Media Wiki站点执行身份验证,以请求诸如活动用户之类的信息 现在,根据特定实例上的设置,我当前需要指定如何执行身份验证(例如,trac使用基本或摘要身份验证方案)是否有一个python http客户端可以自动对几种身份验证类型执行身份验证?,python,http,authentication,curl,urllib2,Python,Http,Authentication,Curl,Urllib2,我目前正在使用urllib2或curl对不同的Trac、Jira、Twiki和Media Wiki站点执行身份验证,以请求诸如活动用户之类的信息 现在,根据特定实例上的设置,我当前需要指定如何执行身份验证(例如,trac使用基本或摘要身份验证方案) 是否有一个(python)库或一段代码可以自动识别服务器的身份验证方案并执行给定的url、用户名、,和密码,以消除此特定于服务器的设置作为恒定错误源?Python请求不会自动处理身份验证方案,但提供了一个更简单的界面来处理基本和摘要 检查代码示例 下
是否有一个(python)库或一段代码可以自动识别服务器的身份验证方案并执行给定的url、用户名、,和密码,以消除此特定于服务器的设置作为恒定错误源?Python请求不会自动处理身份验证方案,但提供了一个更简单的界面来处理基本和摘要 检查代码示例 下面的代码尝试获取url一次以获取身份验证方案,然后使用正确的身份验证实现重试url:
import requests
import sys
from requests.auth import HTTPBasicAuth, HTTPDigestAuth
AUTH_MAP = {
'basic': HTTPBasicAuth,
'digest': HTTPDigestAuth,
}
def auth_get(url, *args, **kwargs):
r = requests.get(url)
if r.status_code != 401:
return r
auth_scheme = r.headers['WWW-Authenticate'].split(' ')[0]
auth = AUTH_MAP.get(auth_scheme.lower())
if not auth:
raise ValueError('Unknown authentication scheme')
r = requests.get(url, auth=auth(*args, **kwargs))
return r
if __name__ == '__main__':
print auth_get(*sys.argv[1:])
使用
python Test\u request.py用户名密码测试它
感谢您的回答,它至少有助于解决trac问题。