第一個報錯:
最近在練習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)
作用:禁用解除安全警告
然后那些鬼警告就不見了 。
有新問題,歡迎各位評論見,一起解決、一起學習、一起進步。
