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 AUTO_FIX_Login_Users
    SQL Server Always On 切换主机Login和User无法匹配解决方案
    SQL Server 目标主体名称不正确,无法生成 SSPI 上下文
    SQL Server Rebuild Index
    jqery和js如何判断checkbox是否选中 (转)
    jxl
    jxl 管理excel
    Bootstrap库之Modals
    jquery attr()
    js 验证数字(验证字符串是否是数字)
  • 原文地址:https://www.cnblogs.com/zzy0306/p/8353101.html
Copyright © 2011-2022 走看看