python pycurl验证basic和digest认证的方法
简介
pycurl类似于Python的urllib,但是pycurl是对libcurl的封装,速度更快。
本文使用的是pycurl7.43.0.1版本。
Apache下配置Basic认证
生成basic密码文件
htpasswd-bcpasswd.basictest123456
开启mod_auth_basic
LoadModuleauth_basic_modulemodules/mod_auth_basic.so
配置到具体目录
AuthName"BasicAuthDir" AuthTypeBasic AuthUserFileconf/passwd.basic requirevalid-user
重启Apache
Apache下配置Digest认证
生成Digest密码文件
htdigest-cpasswd.digest"DigestEncrypt"test
开启mod_auth_digest
LoadModuleauth_digest_modulemodules/mod_auth_digest.so
配置到具体目录
AuthTypeDigest AuthName"DigestEncrypt"#要与密码的域一致 AuthDigestProviderfile AuthUserFileconf/passwd.digest requirevalid-user
重启Apache
验证Basic认证
#-*-coding:utf-8-*-
importpycurl
try:
fromioimportBytesIO
exceptImportError:
fromStringIOimportStringIOasBytesIO
buffer=BytesIO()
c=pycurl.Curl()
c.setopt(c.URL,'http://test/basic/')
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认证
#-*-coding:utf-8-*-
importpycurl
try:
fromioimportBytesIO
exceptImportError:
fromStringIOimportStringIOasBytesIO
buffer=BytesIO()
c=pycurl.Curl()
c.setopt(c.URL,'http://test/digest/')
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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。