第一个报错:html
最近在练习post请求中上传文件时遇到了一个奇葩事情,两台电脑上写了如出一辙的代码,一个运行正常,另外一个一片红。python
最后了解了一下缘由以及解决办法。先记录下关键代码:安全
files = {"files":(r"F:\test.txt","xixihaha")} #直接将目标文件内容xixihaha经过文件test.txt进行上传
r = requests.post(url,files=files)
print(r.headers)
#前边的请求地址就不写了。
代码运行后报错以下:post
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)'),))学习
截图:url
报错信息其实有不少,这是一关键信息。了解了一下 ,说是requests请求时证书认证失败的问题。spa
又找解决的方法;code
加了一句这样的东西:verify=False
htm
(加这个东西大概意思就是:将verify设置为False,Requests忽略对SSL证书的验证
)blog
而后代码就变成了 :
files = {"files":(r"F:\test.txt","send sesss")} # 二、直接将目标文件内容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)
做用:禁用解除安全警告
而后那些鬼警告就不见了 。
有新问题,欢迎各位评论见,一块儿解决、一块儿学习、一块儿进步。