zoukankan      html  css  js  c++  java
  • python关于SSL的认证--pycurl模块使用

    今天在做微信支付退款接口的时候,因为需要使用到双向证书的认证,所以一开始是没有头绪的,后来在网上找到了相类似的教程,发现了pycurl模块,才成功实现了证书认证,教程链接:http://blog.csdn.net/yueguanghaidao/article/details/41451711/。

    然后因为是直接copy下来的代码,所以自己后面花了点时间来熟悉一下这个模块,因为我是想达到使用证书post的目的, 所以就编写了一个函数

        def postXmlSSL(self, xml, url, second=30, cert=True, post=True):
            # 使用证书进行post
            curl = pycurl.Curl()  #创建pcurl对象
            curl.setopt(pycurl.SSL_VERIFYHOST, False)      #对于某些采用HTTPS的网站,有时会因为证书验证失败而无法正常访问,pycurl模块提供了取消验证过程的功能。
            curl.setopt(pycurl.SSL_VERIFYPEER, False)
            curl.setopt(pycurl.HEADER, False)     #设置不输出header  
            curl.setopt(pycurl.URL, url)      #设置url
            curl.setopt(pycurl.TIMEOUT, second)  #连接超时时间
            if cert:        #如果是存在证书,就会有证书和密钥,python使用的是两个pem证书,然后定义类型,输入证书路径就ok了。
                curl.setopt(pycurl.SSLKEYTYPE, "PEM")
                curl.setopt(pycurl.SSLKEY, "###")
                curl.setopt(pycurl.SSLCERTTYPE, "PEM")
                curl.setopt(pycurl.SSLCERT, "###")
            if post:        #使用的是post方法,然后post内容是xml格式的。
                curl.setopt(pycurl.POST, True)
                curl.setopt(pycurl.POSTFIELDS, xml)
            buff = BytesIO()    #python3使用的是io模块的字节流,而不是教程中的StingIO,那个是python2使用的
            curl.setopt(pycurl.WRITEFUNCTION, buff.write)    #pycurl模块不具备存储的功能,所以将数据写入字节流当中
    
            curl.perform()    #执行操作
            return buff.getvalue().decode("utf-8")    #返回字节流中的数据,返回之前要解码,我是从微信接口获取的数据,所以是用utf-8来解码。

    搞完这些发现了一个专门讲pycurl模块的文档,哔了狗,要是早点发现就好了。。。。贴出文档链接:https://mp.weixin.qq.com/s?__biz=MzIwMDYxMjgyMg==&mid=2650361142&idx=1&sn=b11ad13a718b8c91280eab1ffbe62b98

  • 相关阅读:
    SQL Server, Timeout expired.all pooled connections were in use and max pool size was reached
    javascript 事件调用顺序
    Best Practices for Speeding Up Your Web Site
    C语言程序设计 使用VC6绿色版
    破解SQL Prompt 3.9的几步操作
    Master page Path (MasterPage 路径)
    几个小型数据库的比较
    CSS+DIV 完美实现垂直居中的方法
    由Response.Redirect引发的"Thread was being aborted. "异常的处理方法
    Adsutil.vbs 在脚本攻击中的妙用
  • 原文地址:https://www.cnblogs.com/zzy0306/p/8353101.html
Copyright © 2011-2022 走看看