requests接口測試-https證書


一,Https協議

Https協議即超文本傳輸安全協議(Hypertext Transfer Protocol Secure,縮寫:HTTPS)是一種網絡安全傳輸協議。HTTP協議以明文方式發送內容,不提供任何方式的數據加密,因此使用HTTP協議傳輸敏感信息非常不安全。HTTPS在HTTP的基礎上用SSL/TLS來加密數據包,SSL/TLS依靠證書來驗證服務器的身份,並為瀏覽器和服務器之間的通信加密。HTTP使用80端口,而HTTPS占用443端口。HTTPS開發的主要目的,是提供對網絡服務器的身份認證,保護交換數據的隱私與完整性。

二,Https證書認證問題

我們在進行接口測試的時候,發送https請求常常會報Https證書認證失敗警告提示信息,如:
requests.exceptions.SSLError: HTTPSConnectionPool(host='www.juhe.cn', port=443): Max retries exceeded with url: /login/login (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))),如圖:

解決辦法通常有兩種,一種是發送https請求時忽略證書,證書的參數為Verify,默認為True,可以在代碼中設置為False,忽略證書。這種方式也是比較常用的方法。另外一種就是在Verify中添加證書的路徑。

"""
接口名稱:聚合數據網站登錄接口
目標:Https證書認證失敗解決方案
接口URL:https://www.juhe.cn/login/login
請求方法:post
請求參數:username,password
"""
import  requests
#URLd地址;
url="https://www.juhe.cn/login/login"
#data參數為字典
data={
"username":18xxxxxxxx,
"password": "xxxxxxxx"
}
#第一種解決辦法:發送請求時忽略證書,verify默認為為True,設置為False
r=requests.post(url,data=data,verify=False)
#第二解決辦法:發送請求時忽略證書,verify默認為為True,設置為False
r=requests.post(url,data=data,verify='證書路徑')
print(r.text)
print(r.status_code)
print(r.headers)


免責聲明!

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



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