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的Tornado框架中内置的模板引擎
Jul 11 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
Python面向对象之类和实例用法分析
Jun 08 Python
对Python函数设计规范详解
Jul 19 Python
Django实现发送邮件找回密码功能
Aug 12 Python
wxPython色环电阻计算器
Nov 18 Python
python实现超市商品销售管理系统
Nov 22 Python
python函数不定长参数使用方法解析
Dec 14 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 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 COOKIE设置为浏览器进程
2009/06/21 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
js的写法基础分析
2011/01/17 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
基于Pytorch SSD模型分析
2020/02/18 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
python线程里哪种模块比较适合
2020/08/02 Python
Django配置跨域并开发测试接口
2020/11/04 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
机电一体化大学生求职信
2013/11/08 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
企业工会工作总结2015
2015/05/13 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android