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

 更新时间:2018年05月02日 11:43:58   作者:lilongsy  
这篇文章主要介绍了python pycurl验证basic和digest认证的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

简介

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 Socket编程详解

    Python Socket编程详解

    这篇文章主要介绍了Python Socket编程的相关资料,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • python中argparse模块及action='store_true'详解

    python中argparse模块及action='store_true'详解

    argparse 是一个用来解析命令行参数的 Python 库,它是 Python 标准库的一部分,这篇文章主要介绍了python中argparse模块及action=‘store_true‘详解,需要的朋友可以参考下
    2023-02-02
  • 解决Python 写文件报错TypeError的问题

    解决Python 写文件报错TypeError的问题

    这篇文章主要介绍了解决Python 写文件报错TypeError的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • python实现IOU计算案例

    python实现IOU计算案例

    这篇文章主要介绍了python实现IOU计算案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Flask中特殊装饰器的使用

    Flask中特殊装饰器的使用

    在Flask中,before_request和after_request是用作装饰器的特殊函数,本文主要介绍了Flask中特殊装饰器的使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Python 迭代器介绍及作用详情

    Python 迭代器介绍及作用详情

    这篇文章主要介绍了Python 迭代器介绍及作用详情,Python 中的迭代器是一个对象,用于迭代列表、元组、字典和集合等可迭代对象,文章围绕主题展开详细的内容介绍,需要的朋友可以参考一下
    2022-07-07
  • 基于python的七种经典排序算法(推荐)

    基于python的七种经典排序算法(推荐)

    本篇文章主要介绍基于python的七种经典排序算法(推荐),具有一定的参考价值,这里整理了详细的代码,有需要的小伙伴可以参考下。
    2016-12-12
  • python深度学习tensorflow1.0参数和特征提取

    python深度学习tensorflow1.0参数和特征提取

    这篇文章主要为大家介绍了python深度学习tensorflow1.0参数和特征提取,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 浅谈Python 函数式编程

    浅谈Python 函数式编程

    这篇文章主要介绍了Python 函数式编程的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • Pandas 多进程处理数据提高速度

    Pandas 多进程处理数据提高速度

    这篇文章主要介绍了Pandas 多进程处理数据提高速度,Pandas多进程的方法,pandarallel 库,下面具体的测试方法,需要的朋友可以参考一下,希望对你的学习有所帮助
    2022-04-04

最新评论