首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何捕获SSL: CERTIFICATE_VERIFY_FAILED错误python?

如何捕获SSL: CERTIFICATE_VERIFY_FAILED错误python?
EN

Stack Overflow用户
提问于 2017-12-18 05:57:09
回答 3查看 3.6K关注 0票数 2

我使用urllib3.PoolManager来发出http请求。在我的代码的某些部分,我使用这段代码来请求

代码语言:javascript
复制
resp = h.request(self.method, self.url, body=body, headers=headers, timeout=TIMEOUT, retries=retries)

我得到错误SSL: CERTIFICATE_VERIFY_FAILED。下面是完整的堆栈跟踪。

代码语言:javascript
复制
  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中的错误。

我试着用

代码语言:javascript
复制
 except ssl.SSLError:

但这并不能捕捉到这个错误。我也尝试过ssl.CertificateError,但没有结果。我可以通过使用异常类来捕获它,但是我需要捕获特定的错误,并以不同的方式处理它们。有人能帮我找个解决办法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-12-18 06:18:16

我找到了解决办法。正在引发的异常类是urllib3.exceptions.SSLError.。

票数 3
EN

Stack Overflow用户

发布于 2021-03-23 15:17:48

迟答,但您可以使用requests.exceptions.SSLError捕获SSL错误。

代码语言:javascript
复制
import requests, traceback

try:
    r = requests.get('https://domain.tld')
except (requests.exceptions.SSLError):
    print(traceback.format_exc())
票数 0
EN

Stack Overflow用户

发布于 2022-05-19 11:22:02

要查找任何异常的特定类型,可以使用type()

代码语言:javascript
复制
import requests

try:
    r = requests.get('https://domain.tld')
except Exception as e:
    print(type(e))

输出:

代码语言:javascript
复制
<class 'requests.exceptions.ConnectionError'>

这就导致我们:

代码语言:javascript
复制
import requests

try:
    r = requests.get('https://domain.tld')
except requests.exceptions.ConnectionError as e:
    print("Caught correctly")

输出:

代码语言:javascript
复制
Caught correctly
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47862835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档