这篇文章主要介绍了python pycurl验证basic和digest认证的方法,现在分享给大家,也给大家做个参考。一起过来看看吧
简介
pycurl类似于Python的urllib,但是pycurl是对libcurl的封装,速度更快。
本文使用的是pycurl 7.43.0.1版本。
Apache下配置Basic认证
生成basic密码文件
1 | htpasswd -bc passwd.basic test 123456
|
登录后复制
开启mod_auth_basic
1 | LoadModule auth_basic_module modules/mod_auth_basic.so
|
登录后复制
配置到具体目录
1 2 3 4 5 6 | <Directory "D:/test/basic" >
AuthName "Basic Auth Dir"
AuthType Basic
AuthUserFile conf/passwd.basic
require valid-user
</Directory>
|
登录后复制
重启Apache
Apache下配置Digest认证
生成Digest密码文件
1 | htdigest -c passwd.digest "Digest Encrypt" test
|
登录后复制
开启mod_auth_digest
1 | LoadModule auth_digest_module modules/mod_auth_digest.so
|
登录后复制
配置到具体目录
1 2 3 4 5 6 7 | <Directory "D:/test/digest" >
AuthType Digest
AuthName "Digest Encrypt" # 要与密码的域一致
AuthDigestProvider file
AuthUserFile conf/passwd.digest
require valid-user
</Directory>
|
登录后复制
重启Apache
验证Basic认证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # -*- coding: utf-8 -*-
import pycurl
try :
from io import BytesIO
except ImportError:
from StringIO import StringIO as BytesIO
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, 'http:
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_BASIC)
c.setopt(c.USERNAME, 'test')
c.setopt(c.PASSWORD, '123456')
c.perform()
print ('Status: %d' % c.getinfo(c.RESPONSE_CODE))
print (buffer.getvalue())
c.close()
|
登录后复制
验证Digest认证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # -*- coding: utf-8 -*-
import pycurl
try :
from io import BytesIO
except ImportError:
from StringIO import StringIO as BytesIO
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, 'http:
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_DIGEST)
c.setopt(c.USERNAME, 'test')
c.setopt(c.PASSWORD, '123456')
c.perform()
print ('Status: %d' % c.getinfo(c.RESPONSE_CODE))
print (buffer.getvalue())
c.close()
|
登录后复制
以上是python pycurl验证basic和digest认证的方法的详细内容。更多信息请关注PHP中文网其他相关文章!