我正在尝试建立一个websocket连接但是收到了错误:
请求标头中的来源不正确。
我的代码是:
def create_signature():
timestamp = int(datetime.datetime.now().timestamp())
string = "{}{}".format(timestamp, key)
return timestamp, hmac.new(secret.encode(), string.encode(), hashlib.sha256).hexdigest()
def auth_request():
timestamp, signature = create_signature()
return json.dumps({'e': 'auth',
'auth': {'key': key, 'signature': signature, 'timestamp': timestamp}})
def main():
ws = create_connection(websocketURL)
authentication = auth_request()
ws.send(authentication)
result = ws.recv()
print(result)
ws.close()
我正在运行main
功能。 auth_request
返回有效的json。我正在尝试获取有效的响应对象,但连接失败。我导入了相关的库,没有任何语法错误。所有变量都在另一个文件中定义。
如何解决此问题,这是我第一次使用网络套接字?
答案 0 :(得分:1)
我相信您的代码来自www.cex.io。 (如果不是,抱歉)
为了使用cex.io ws api,您需要在连接到websocket时声明正确的 Origin标头:
Origin: wss.cex.io
(我个人向cex.io支持团队询问了此问题)
对于市场数据(ticker,ohlcv ..),您无需进行身份验证
https://gist.github.com/icehongssii/1c8ec1755dfee88c2789714ee9a37738.js