標籤: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模組使用