Python实现HTTP基本身份验证的两种方法
本文介绍了在Python中实现HTTP基本身份验证的两种常用方法。第一种通过urllib2.HTTPBasicAuthHandler构建自定义Opener,自动处理认证流程;第二种通过Request对象手动添加Base64编码的Authorization头部。文章包含完整的Python代码示例,演示了如何配置登录名、密码及URL,并对比了两种方式的实现细节与使用场景。
具体实现方案如下所示:
#!usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
LOGIN = ""
PASSWORD = ""
URL = ""
REALM = "Secure Archive"
def handler_version(url):
from urlparse import urlparse#urlparse用来将url拆成各个部分scheme netloc path params query fragment
hdlr = urllib2.HTTPBasicAuthHandler()#http验证类 里面有用户名和密码
hdlr.add_password(REALM, urlparse(url)[1], LOGIN, PASSWORD)#将url 用户名 密码添加进去
opener = urllib2.build_opener(hdlr)#urlopen不支持验证等高级功能 所以自定义opener
urllib2.install_opener(opener)#建立url开启器
return url
def request_version(url):
from base64 import encodestring#编码
req = urllib2.Request(url)#开始请求页面
b64str = encodestring('%s:%s' % (LOGIN, PASSWORD))[:-1]#将sting转换成base64-data形式 base64为一种形式的二进制编码
req.add_header("Authorization", "Basic %s" % b64str)#添加header标头
return req
for funcType in ('handler', 'request'):
print '***Using %s:' % funcType.upper()
url = eval('%s_version' % funcType)(URL)#eval 将字符串转换成有效的表达式并返回结果
f = urllib2.urlopen(url)
print f.readline()
f.close()
以上关于Python HTTP基本身份验证的方法介绍完毕。希望这些内容能为您提供有效的参考,如果您觉得有用,欢迎继续支持本站获取更多技术分享。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













