gpt4 book ai didi

python - 如何使用 python websockets 安全地连接到 Bitstamp Websocket v2.0 API?证书验证错误

转载 作者:行者123 更新时间:2023-11-28 18:01:06 37 4
gpt4 key购买 nike

我正在尝试从 Bitstamp Websocket v2.0 API 获取实时比特币价格数据。如果需要,我在哪里可以获得证书?如果证书下载是自动的,我如何确保 python 可以验证收到的证书?

Bitstamp 网站上关于此问题的文档相当稀少。这是 Bitstamp api 文档中的引述:

“一旦您通过 websocket 握手(使用 HTTP 升级 header )打开连接,您就可以订阅所需的 channel 。”

Bitstamp API 文档:https://www.bitstamp.net/websocket/v2/

尝试在 websockets 文档中搜索:https://websockets.readthedocs.io/en/stable/

我研究了 websockets 和 ssl。现在我对握手有了一些了解,但经过多次尝试和搜索后,我仍然不知道该怎么做。

import asyncio
import websockets

async def bitstamp_ticker():
async with websockets.connect(
'wss://ws.bitstamp.net', ssl=True) as websocket:
pass

asyncio.get_event_loop().run_until_complete(bitstamp_ticker())

根据我在 websocket 文档中的理解,添加 ssl=True 应该足以建立安全连接。但似乎 bitstamp 证书可能无法被 Python 3.6 内置的证书颁发机构识别。这就是错误发生的原因?

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)

最佳答案

我没有花时间研究 Bitstamp 的 ssl 证书问题。但我只是禁用了 ssl 证书验证以使网络套接字市场数据推送工作。以下是示例代码,如果您能分享您在这个问题上的 future 进展,我们将不胜感激。

# -*- coding: utf-8 -*-
import websocket
import json
import ssl

bitstamp_endpoint = 'wss://ws.bitstamp.net'


def subscribe_marketdata(ws):
params = {
'event': 'bts:subscribe',
'data': {
'channel': 'order_book_btcusd'
}
}
market_depth_subscription = json.dumps(params)

ws.send(market_depth_subscription)


def on_open(ws):
print('web-socket connected.')
subscribe_marketdata(ws)


def on_message(ws, data):
data = json.loads(data)
print(data)


def on_error(ws, msg):
print(msg)


if __name__ == '__main__':
marketdata_ws = websocket.WebSocketApp(bitstamp_endpoint, on_open=on_open, on_message=on_message, on_error=on_error)
marketdata_ws.run_forever(sslopt={'cert_reqs': ssl.CERT_NONE})

关于python - 如何使用 python websockets 安全地连接到 Bitstamp Websocket v2.0 API?证书验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55686091/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com