You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用http.client发送代理GET请求出现SSL:WRONG_VERSION_NUMBER错误

错误原因

出现SSL: WRONG_VERSION_NUMBER报错的核心原因是你错误使用HTTPSConnection连接普通HTTP代理:普通HTTP代理的服务端口默认走明文HTTP协议,你用HTTPS协议发起握手,两端协议不匹配就会触发SSL版本错误。

解决方案

根据你的使用场景选择对应修改方案即可:

场景1:使用普通HTTP代理请求HTTP站点

直接将HTTPSConnection替换为HTTPConnection即可解决问题,修改后的代码如下:

import http.client

r = http.client.HTTPConnection("代理IP", "代理端口")
r.request('GET', "http://httpbin.org/get" , headers={"Host": "httpbin.org"})
res = r.getresponse()
print(res.read().decode())

场景2:使用普通HTTP代理请求HTTPS站点

如果后续需要通过代理请求HTTPS协议的站点,需要先向代理发送CONNECT请求建立隧道,再发送业务请求,代码示例如下:

import http.client

r = http.client.HTTPConnection("代理IP", "代理端口")
# 建立到目标站点443端口的隧道
r.set_tunnel("httpbin.org", 443)
# 仅填写站点内路径即可
r.request('GET', "/get")
res = r.getresponse()
print(res.read().decode())

场景3:使用HTTPS协议连接代理

如果确认你的代理本身要求走HTTPS协议连接,可以手动指定SSL上下文匹配代理支持的TLS版本,代码示例如下:

import http.client
import ssl

# 可根据代理支持的TLS版本调整协议类型,常用为PROTOCOL_TLSv1_2、PROTOCOL_TLSv1_3
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
r = http.client.HTTPSConnection("代理IP", "代理端口", context=context)
r.set_tunnel("httpbin.org", 443)
r.request('GET', "/get")
res = r.getresponse()
print(res.read().decode())

内容的提问来源于stack exchange,提问作者Rubs 01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:45:09