时间:2021-07-01 10:21:17 帮助过:20人阅读
简介
pycurl类似于Python的urllib,但是pycurl是对libcurl的封装,速度更快。
本文使用的是pycurl 7.43.0.1版本。
Apache下配置Basic认证
生成basic密码文件
- htpasswd -bc passwd.basic test 123456
开启mod_auth_basic
- LoadModule auth_basic_module modules/mod_auth_basic.so
配置到具体目录
- <Directory "D:/test/basic">
- AuthName "Basic Auth Dir"
- AuthType Basic
- AuthUserFile conf/passwd.basic
- require valid-user
- </Directory>
重启Apache
Apache下配置Digest认证
生成Digest密码文件
- htdigest -c passwd.digest "Digest Encrypt" test
开启mod_auth_digest
- LoadModule auth_digest_module modules/mod_auth_digest.so
配置到具体目录
- <Directory "D:/test/digest">
- AuthType Digest
- AuthName "Digest Encrypt" # 要与密码的域一致
- AuthDigestProvider file
- AuthUserFile conf/passwd.digest
- require valid-user
- </Directory>
重启Apache
验证Basic认证
- # -*- 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://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 -*-
- 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://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()
以上就是python pycurl验证basic和digest认证的方法的详细内容,更多请关注Gxl网其它相关文章!