python接口自動化(十二)--https請求(SSL)(詳解)


簡介

  本來最新的requests庫V2.13.0是支持https請求的,但是一般寫腳本時候,我們會用抓包工具fiddler,這時候會 報:requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)

小編環境:
python:3.7

requests:2.21.0

fiddler:v5.0.20

python & requests:

 

Fiddler:

一、SSL問題

1、在你不啟用fiddler時,python代碼直接發送https請求,不會有SSL問題(也就是說不想看到SSL問題,關掉fiddler就行)

2、啟動fiddler抓包,會出現這個錯誤:

requests.exceptions.SSLError: HTTPSConnectionPool(host='passport.cnblogs.com', port=443): Max retries exceeded with url: /user/signin (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

二、verify參數設置

1、Requests的請求默認verify=True

2、如果你將 verify設置為 False,Requests 也能忽略對 SSL 證書的驗證

3、但是依然會出現兩行Warning,可以不用管

三、忽略Warning

  有些小伙伴有強迫症看到紅色的心里就發慌,這里加兩行代碼可以忽略掉警告,眼不見為凈!

 Python2添加如下代碼即可解決:

1 from requests.packages.urllib3.exceptions import InsecureRequestWarning
2 # 禁用安全請求警告
3 requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

Python3添加如下三種任意一種代碼即可解決:

1 1、requests.packages.urllib3.disable_warnings()
2 
3 2、import warnings
4    warnings.filterwarnings("ignore")
5 
6 3、import urllib3
7   urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM