通过Python WebSocket客户端传递cookie

5
我正在使用 websocket-client 连接到一个 node.js 服务器(我的 websocket 服务器),并且已经成功地通过 websockets 从 Python 发送消息到 node.js。
我的 Python 客户端使用 requests 模块登录网站并收集 cookies(这些 cookies 是由服务器作为成功登录的结果传递的)。我希望这些 cookies 能够像代码这里所示一样作为 websocket-client 的一部分被传递。
我从登录中获取以下 cookies:
(Pdb) requests.utils.dict_from_cookiejar(client.cookies)
{'csrftoken': 'DhSf0z9Ouu5f1SbfGWBg5BuBe1UuJMLr', 'sessionid': 'pu6ig4z4mtq5k8rvm6kuv8g3fdegs47d'}

我创建websocket时如何发送cookie?

ws = websocket.WebSocketApp("ws://localhost:8080/",
                          on_message = on_message,
                          on_error = on_error,
                          on_close = on_close,
                          # cookie = ? what goes here ?
    )
1个回答

9

只是这样:

ws = websocket.WebSocketApp("ws://localhost:8080/",
                          on_message = on_message,
                          on_error = on_error,
                          on_close = on_close,
                          cookie = "csrftoken=DhSf0z9Ouu5f1SbfGWBg5BuBe1UuJMLr; sessionid=pu6ig4z4mtq5k8rvm6kuv8g3fdegs47d"
)

这是用来传递简单字符串的


5
请尝试使用以下代码来设置cookie变量的值:cookie = "csrftoken=DhSf0z9Ouu5f1SbfGWBg5BuBe1UuJMLr; sessionid=pu6ig4z4mtq5k8rvm6kuv8g3fdegs47d" - libertylocked
对我来说,使用websocket-client 0.53的已接受答案的语法无法正常工作,但是使用@libertylocked的评论语法可以正常工作。 - kriss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接