如何向Python REST请求添加基本身份验证?
我有以下简单的Python代码,可以向REST服务发出简单的post请求-如何向Python REST请求添加基本身份验证?,python,web-services,authentication,rest,http-post,Python,Web Services,Authentication,Rest,Http Post,我有以下简单的Python代码,可以向REST服务发出简单的post请求- params= { "param1" : param1, "param2" : param2, "param3" : param3 } xmlResults = urllib.urlopen(MY_APP_PATH, urllib.urlencode(params)).read() results = MyResponseParser.parse(xmlResults) 问题是,
params= { "param1" : param1,
"param2" : param2,
"param3" : param3 }
xmlResults = urllib.urlopen(MY_APP_PATH, urllib.urlencode(params)).read()
results = MyResponseParser.parse(xmlResults)
问题是,用于调用REST服务的url现在需要基本身份验证(用户名和密码)。如何尽可能简单地将用户名和密码/基本身份验证合并到此代码中?如果基本身份验证=HTTP身份验证,请使用以下方法:
import urllib
import urllib2
username = 'foo'
password = 'bar'
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, MY_APP_PATH, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
params= { "param1" : param1,
"param2" : param2,
"param3" : param3 }
xmlResults = urllib2.urlopen(MY_APP_PATH, urllib.urlencode(params)).read()
results = MyResponseParser.parse(xmlResults)
如果没有,请使用mechanize
或cookielib
发出额外的登录请求。但是,如果您访问的服务有一个XMLAPI,那么这个API肯定也包括auth
2016年编辑:请务必使用该库!它在一次调用中提供了上述所有功能。您可能需要一个库来提取一些细节。我以前用过很好的效果。它处理HTTP身份验证。它不可以作为
params
字典的一部分传递所需的参数吗?或者您的目标服务是否要求您进行另一次显式调用以进行身份验证?