如何使用python的urllib2库只请求一次验证URL,而不是两次
发布时间:2020-12-20 13:22:44 所属栏目:Python 来源:网络整理
导读:通常,我们请求一个带有 python urllib2库的认证url,用法如 this page所述,但这会导致2个服务器请求,第一个响应401错误,然后第二个是客户端编码username / passwd into验证标头和请求再次.但是,如果您确实知道领域和(用户名,密码),您只能直接访问该网址一次.
通常,我们请求一个带有
python urllib2库的认证url,用法如
this page所述,但这会导致2个服务器请求,第一个响应401错误,然后第二个是客户端编码username / passwd into验证标头和请求再次.但是,如果您确实知道领域和(用户名,密码),您只能直接访问该网址一次.我可以通过将身份验证信息编码到请求标头中来执行此操作,并且它只请求一次,但我无法使用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() 解决方法
是的,这就是urllib的密码管理器的工作原理.它仅在从服务器接收401后发送auth信息.你可以将很多东西子类化并改变这种行为,但是像在示例中那样自己将信息编码到头中似乎更容易.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |