首页 > 解决方案 > 存在架构时,对请求使用 HTTPS 代理失败

问题描述

我必须使用 HTTPS 代理连接到服务并传递客户端证书。

文档演示了在值中使用模式(例如https://),但这会抛出::

s = requests.Session()
s.proxies.update({'https': 'https://host.ip.com:port'})
s.cert = (CRT_FILE, KEY_FILE)
s.verify = False
r = s.get(URL)

# (stack trace)...
# ValueError: check_hostname needs a SSL context with either CERT_OPTIONAL or CERT_REQURIED

排除架构作品:

# ...
s.proxies.update({'https': 'host.ip.com:port'})
# ...
r = s.get(URL)
r.status_code
# 200

为什么包含架构时请求会失败?代理的这种键/值配对是否有标准?

注意:环境在另一个系统上,不能复制/粘贴整个堆栈跟踪。

标签: pythonpython-requests

解决方案


推荐阅读