如何在请求 HTTPS 调用中抑制有关缺少证书验证的警告?

How to suppress warnings about lack of cert verification in a requests HTTPS call?

我想在使用 requests 的 HTTPS 调用中禁用有关缺少证书验证的警告。

这个问题过去曾被问过,导致关于 disabling a relevant request logging or the urllib3 SSL warning 的答案。

这在过去曾经有效(我记得成功地消除了警告)但似乎不再有效了?

我将目前有效的两个解决方案放在一起:

Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170124] on linux
>>> import requests
>>> import requests.packages
>>> import urllib3
>>> urllib3.disable_warnings()
>>> requests.packages.urllib3.disable_warnings()
>>> requests.get('https://www.google.com', verify=False)
/usr/lib/python3/dist-packages/urllib3/connectionpool.py:845: 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)
<Response [200]>

是否有其他(当前)解决方案来消除这些警告?

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

有两种不同的方法可以做到这一点,这两种方法都有效。 您必须将其添加到您的导入中

from requests.packages.urllib3.exceptions import InsecureRequestWarning

而不是使用
requests.packages.urllib3.disable_warnings()

使用
请求。urllib3.disable_warnings()