为什么向任何子域发送请求时都会出现这种SSLerrorsandbox.example.com?

2024-04-26 11:56:56 发布

您现在位置:Python中文网/ 问答频道 /正文

>>> import requests
>>> requests.get("https://api.example.com/index.php")
<Response [200]>

>>> requests.get("https://sandbox.example.com/index.php")
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/requests/api.py", line 55, in get
    return request('get', url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 383, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 486, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 385, in send
    raise SSLError(e)
SSLError: hostname 'sandbox.example.com' doesn't match either of 'example.com', 'account.example.com', 'api.example.com', 'secure.example s.com'

https://sandbox.example.com/index.phphttps://api.example.com/index.php both在浏览器上正常工作时,为什么会出现此错误?在


Tags: inpycomsendapigetexamplerequest
1条回答
网友
1楼 · 发布于 2024-04-26 11:56:56

Python3的SSL模块包括对SNI的本机支持。这种支持还没有被移植到Python2上。远程服务器可能依赖于SNI为您提供正确的证书,因此出现错误。在

有关在Python2上对请求使用SNI的信息,请参阅Stack Overflow answer。在

相关问题 更多 >