我发布这样的请求:
requests.post(URL, headers=HEADERS, cookies=COOKIES, data=DATA, proxies=proxy_list[ip_index], timeout=4)
并返回以下错误:
HTTPSConnectionPool(host='www.example.com', port=443): Max retries exceeded with url: /someurl (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)')))
3条答案
按热度按时间iyfjxgzm1#
根据代理设置,代理服务器可能会对此负责。如果您将https_proxy设置为https://路径,则代理服务器可能会干扰TLS的验证过程。将此设置更改为http://proxy.address将允许代理服务器打开连接,然后在主机和目标之间进行TLS握手。
使用类似的设置来尝试curl -v可能会很有用,因为python ssl绑定可能会误解/掩盖底层库的错误。
在这个问题的根源上,我推测最近像Debian这样的发行版的长期稳定映像的更新导致了大量这些问题的出现,这些问题可能以前是看不见的。
ahy6op9u2#
这解决了我在Linux下的问题:
mwecs4sa3#
在我的例子中,它是由URL中的错别字引起的:
如果URL有
https
协议,python将尝试执行SSL握手,服务器将无法理解它。SSL库将被响应混淆并抛出错误。所以,替换协议就成功了: