python關於SSL的認證--pycurl模組使用

來源:互聯網
上載者:User

標籤:com   pre   val   返回   教程   pyc   tin   網上   weixin   

今天在做支付退款介面的時候,因為需要使用到雙向認證的認證,所以一開始是沒有頭緒的,後來在網上找到了相類似的教程,發現了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

python關於SSL的認證--pycurl模組使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.