如何捕获SSL:CERTIFICATE\u VERIFY\u FAILED error python?
我正在使用urllib3.PoolManager发出http请求。在我的代码的某些部分,我使用这个代码来发出请求如何捕获SSL:CERTIFICATE\u VERIFY\u FAILED error python?,python,ssl,exception,ssl-certificate,urllib3,Python,Ssl,Exception,Ssl Certificate,Urllib3,我正在使用urllib3.PoolManager发出http请求。在我的代码的某些部分,我使用这个代码来发出请求 resp = h.request(self.method, self.url, body=body, headers=headers, timeout=TIMEOUT, retries=retries) 我得到错误SSL:CERTIFICATE\u VERIFY\u失败。下面是完整的堆栈跟踪 File "/lib/python2.7/site-packages/urllib3/
resp = h.request(self.method, self.url, body=body, headers=headers, timeout=TIMEOUT, retries=retries)
我得到错误SSL:CERTIFICATE\u VERIFY\u失败。下面是完整的堆栈跟踪
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块中捕获错误
我试着用
except ssl.SSLError:
但这并没有抓住这个错误。
我还尝试了ssl.CertificateError,但没有结果。
我可以通过使用Exception类来捕获它,但是我需要捕获特定的错误并以不同的方式处理它们。有人能帮我找到解决办法吗?我找到了解决办法。正在引发的异常类是urllib3.exceptions.SSLError延迟应答,但您可以使用
请求.exceptions.SSLError
捕获SSL错误
import requests, traceback
try:
r = requests.get('https://domain.tld')
except (requests.exceptions.SSLError):
print(traceback.format_exc())