python pycurl验证basic和digest认证的方法


Posted in Python onMay 02, 2018

简介

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 相关文章推荐
用Python计算三角函数之atan()方法的使用
May 15 Python
Python批量重命名同一文件夹下文件的方法
May 25 Python
python实现音乐下载的统计
Jun 20 Python
Python常见排序操作示例【字典、列表、指定元素等】
Aug 15 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
tensorflow的计算图总结
Jan 12 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
python列表的逆序遍历实现
Apr 20 Python
Python使用Chrome插件实现爬虫过程图解
Jun 09 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
Sep 26 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 #Python
用TensorFlow实现戴明回归算法的示例
May 02 #Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 #Python
Python实现确认字符串是否包含指定字符串的实例
May 02 #Python
详解用TensorFlow实现逻辑回归算法
May 02 #Python
Python获取指定字符前面的所有字符方法
May 02 #Python
Python 查找字符在字符串中的位置实例
May 02 #Python
You might like
PHP邮件专题
2006/10/09 PHP
第九节--绑定
2006/11/16 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
PHP学习笔记之session
2018/05/06 PHP
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
推荐JavaScript实现继承的最佳方式
2014/11/11 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
python client使用http post 到server端的代码
2013/02/10 Python
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
使用tensorflow实现AlexNet
2017/11/20 Python
彻底搞懂Python字符编码
2018/01/23 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
django基于restframework的CBV封装详解
2019/08/08 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
高中毕业自我鉴定
2013/12/22 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
仲裁协议书
2014/09/26 职场文书
小学生通知书评语
2014/12/31 职场文书
员工规章制度范本
2015/08/07 职场文书