我如何捕获SSL:CERTIFICATE_VERIFY_FAILED错误python?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何捕获SSL:CERTIFICATE_VERIFY_FAILED错误python?相关的知识,希望对你有一定的参考价值。
我正在使用urllib3.PoolManager来发出http请求。在我的代码的某些部分,我使用此代码发出请求
resp = h.request(self.method, self.url, body=body, headers=headers, timeout=TIMEOUT, retries=retries)
我收到错误SSL:CERTIFICATE_VERIFY_FAILED。下面是完整的堆栈跟踪。
File "/lib/python2.7/site-packages/urllib3/request.py", line 69, in request
**urlopen_kw)
File "/lib/python2.7/site-packages/urllib3/request.py", line 90, in request_encode_url
return self.urlopen(method, url, **extra_kw)
File "/lib/python2.7/site-packages/urllib3/poolmanager.py", line 248, in urlopen
response = conn.urlopen(method, u.request_uri, **kw)
File "/lib/python2.7/site-packages/urllib3/connectionpool.py", line 621, in urlopen
raise SSLError(e)
[SSL: CERTIFICATE_VERIFY_FAILED]
错误是预期的。但问题是我无法在try中捕获错误,除了块。
我试着用
except ssl.SSLError:
但这并没有发现这个错误。我也尝试过ssl.CertificateError但没有结果。我可以通过使用Exception类来捕获它,但我需要捕获特定的错误并以不同的方式处理它们。有人可以找到我的解决方案吗?
答案
我找到了解决方案。正在引发的异常类是urllib3.exceptions.SSLError。
以上是关于我如何捕获SSL:CERTIFICATE_VERIFY_FAILED错误python?的主要内容,如果未能解决你的问题,请参考以下文章
VirtualHost:停用 SSL 的全部捕获 (443)
通过 Fiddler 捕获 Java https 并获取 javax.net.ssl.SSLHandshakeException
由于 SSL 证书使用 Selenium Webdriver 和 BrowserMob 代理来捕获 har 文件,因此无法加载资源