我正在使用urllib2。 我有问题登录一个服务器返回基本和摘要认证。是否urllib2支持返回基本和摘要认证的服务器
返回:
WWW-Authenticate: Digest realm="[email protected]",nonce="c068c3d7d30cc0cd80db4d1c599e6d54",opaque="e75078c8-a825-474b-b101-f8ca2d1627ca",qop="auth" WWW-Authenticate: Basic realm="[email protected]"
这里是我的代码:
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(realm=None, uri='http://aus.rets.interealty.com', user='user', passwd='pwd')
opener = urllib2.build_opener(urllib2.HTTPDigestAuthHandler(passman))
urllib2.install_opener(opener)
retsRequest= urllib2.Request('http://aus.rets.interealty.com/Login.asmx/Login')
retsRequest.add_header("User-Agent", 'userAgent')
retsRequest.add_header("RETS-Version",'retsVersion')
response=urllib2.urlopen(retsRequest)
print response.read()
我可以用IE登录该服务器,它似乎IE使用摘要身份验证。
我试着添加urllib2.HTTPDigestAuthHandler和urllib2.HTTPBasicAuthHandler,它不起作用。 我可以通过简单添加一个头来登录这个服务器: base64string = base64.encodestring('%s:%s'%(retsUSER,retsPWD))[: - 1] retsRequest.add_header(“Authorization”,“Basic% s“%base64string) 所以我决定选择这种方式。 – suyugo 2012-01-16 04:29:12