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

向Flask应用发送POST请求报SSL WRONG_VERSION_NUMBER错误

问题根因

ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] 报错的核心原因非常明确:你用HTTPS协议去请求了一个仅支持HTTP明文传输的服务。

你本地启动的Flask默认开发服务器没有做任何SSL配置,默认只会响应http://localhost:5000下的普通HTTP请求。但你写请求代码时URL前缀用了https,客户端发起连接时会先走TLS握手流程,而对面的Flask服务根本识别不了TLS握手包,返回的是普通HTTP格式的响应,客户端解析TLS协议版本时完全匹配不上规则,就抛出了这个错误。

解决方法
  • 最快修复方案:直接把请求URL里的https替换成http即可,修改后的请求代码如下:
import requests

resp = requests.post("http://localhost:5000/predict", files={'file': open('mel.jpg', 'rb')})
print(resp.text)
  • 如果你确实有本地HTTPS调试需求(比如测试仅限HTTPS传输的功能逻辑),需要先给Flask服务配置SSL证书,启动服务时指定证书和私钥路径。比如使用自签名证书调试时,启动命令参考:flask run --cert=your_cert.pem --key=your_key.pem,此时才能正常用HTTPS协议发起请求。注意自签名证书默认会被requests的证书校验规则拦截,本地临时调试可以在请求里加verify=False参数跳过校验,该配置绝对不能用到生产环境。

别看到报错里提了"wrong version number"就盲目折腾升级/降级OpenSSL、urllib3、Python版本,这个问题和依赖版本没有关系,纯是请求协议和服务端支持的协议不匹配导致的。

内容的提问来源于stack exchange,提问作者Omar Zayed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:06:34