關於python3.6上傳文件時報錯:HTTPSConnectionPool(host='***.org', port=443): Max retries exceeded with url: /post (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAIL解決辦法


第一個報錯:

最近在練習post請求中上傳文件時遇到了一個奇葩事情,兩台電腦上寫了一模一樣的代碼,一個運行正常,另一個一片紅。

最后了解了一下原因以及解決辦法。先記錄下關鍵代碼:

files = {"files":(r"F:\test.txt","xixihaha")}        #直接將目標文件內容xixihaha通過文件test.txt進行上傳
r = requests.post(url,files=files)
print(r.headers)
#前邊的請求地址就不寫了。

代碼運行后報錯如下:

requests.exceptions.SSLError: HTTPSConnectionPool(host='****.org', port=443): Max retries exceeded with url: /post (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)'),))

截圖:

 

報錯信息其實有很多,這是一關鍵信息。了解了一下 ,說是requests請求時證書認證失敗的問題。

又找解決的方法;

加了一句這樣的東西:verify=False

(加這個東西大概意思就是:將verify設置為False,Requests忽略對SSL證書的驗證

然后代碼就變成了 :

files = {"files":(r"F:\test.txt","send sesss")}                           # 2、直接將目標文件內容xixihaha通過文件test.txt進行上傳。 r = requests.post(url,files=files,verify=False) print(r.headers) print(r.text)

然后再運行一下 ,成功了 。哈哈

 

第二個警告:

上邊的主要問題解決了 ,又冒出來了一個新的問題。

就是下邊的這個警告信息,如下:

InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning)

其實這東西是對我前邊設置了移除對SSL認證操作的警告。

 其解決辦法就是在前邊加上下邊兩句話,具體如下:

from requests.packages.urllib3.exceptions import InsecureRequestWarning 
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

作用:禁用解除安全警告

然后那些鬼警告就不見了 。

有新問題,歡迎各位評論見,一起解決、一起學習、一起進步。


免責聲明!

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



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