使用requests连接wss地址报InvalidSchema错误,求可行替代方案
错误原因
requests 仅支持 HTTP/HTTPS 协议,无法处理 WebSocket 专用的 wss/ws 协议,所以触发了该报错。
解决方案
可以使用专门处理 WebSocket 连接的库实现需求,以下是基于 websocket-client 的实现示例:
- 首先安装依赖
pip install websocket-client
- 编写请求代码
import json import ssl from websocket import create_connection # 构造JSON-RPC请求参数 payload = {"id":1,"jsonrpc":"2.0","method":"getCortexInfo"} # 建立wss连接,本地自签证书可添加sslopt参数跳过证书校验 ws = create_connection( "wss://localhost:6868", # 测试环境跳过证书校验可选,生产环境建议删除该行 sslopt={"cert_reqs": ssl.CERT_NONE} ) # 发送序列化后的JSON请求 ws.send(json.dumps(payload)) # 接收服务端返回结果 response = ws.recv() print(response) # 关闭长连接 ws.close()
如果需要异步场景的实现,可以选择websockets库,调用逻辑和上述同步方案基本一致。
内容的提问来源于stack exchange,提问作者Ashwath
相关产品推荐
相关产品推荐

