【发布时间】:2011-04-06 09:28:49
【问题描述】:
通常,我们使用python urllib2库请求一个认证url,用法如this page描述,但这会导致服务器请求2个,第一个响应401错误,然后第二个是客户端将用户名/密码编码为身份验证标头并再次请求。但是,如果您确实知道领域和(用户名、密码),则您只能直接访问该 url 一次。我可以通过将身份验证信息编码到请求标头中来做到这一点,它只请求一次,但我不能用 HTTPPasswordMgrWithDefaultRealm 和相关类来做到这一点。
-
只有一次请求代码:
import urllib2, base64 url = 'http://xxxx' username = 'jpx' passwd = 'jpx123' b64str = base64.encodestring('%s:%s' % (username, passwd)) req = urllib2.Request(url) auth = 'Basic %s' % b64str req.add_header('Authorization', auth) try: opener = urllib2.urlopen(req) except IOError, e: print str(e) print opener.read()
【问题讨论】:
标签: python authentication urllib2