从 Python 客户端发送 Websockets 连接请求中的标头

leo*_*ape 2 python header websocket

使用Python Websockets将标头添加到 websocket 连接请求的正确方法/语法是什么?

我尝试连接的服务器需要连接请求中的标头进行身份验证

async def connect():
    async with websockets.connect("wss://site.com/ws") as websocket:
        response = await websocket.recv()
        print(response)

    # eg. does not work:
    async with websockets.connect(f"wss://site.com/ws, header={headers}") as websocket:
    async with websockets.connect(f"wss://site.com/ws, extra_headers:{headers}") as websocket:
Run Code Online (Sandbox Code Playgroud)

这里提出了类似的问题,但没有回答问题的核心:How to send 'Headers' in websocket python

小智 10

根据文档,您可以在函数extra_headers的参数中传递标头connect()详细信息请参见此处

所以代码应该是这样的:

async def connect():
    async with websockets.connect("wss://site.com/ws", extra_headers=headers) as websocket:
        response = await websocket.recv()
        print(response)
Run Code Online (Sandbox Code Playgroud)