关于python3.6上传文件时报错:HTTPSConnectionPool(host='***.org', port=443): Max retries exceeded wi...

第一个报错: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=Falsehtm

(加这个东西大概意思就是:将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)

做用:禁用解除安全警告

而后那些鬼警告就不见了 。

有新问题,欢迎各位评论见,一块儿解决、一块儿学习、一块儿进步。

相关文章
相关标签/搜索