我正在使用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