我正在尝试运行类似于此问题中的代码:如何使用 HMAC-SHA512 和 Python 请求库签署 POST 请求?
我有以下代码:
import requests
import hmac
import hashlib
from itertools import count
import time
headers = { 'nonce': '',
'Key' : 'myKey',
'Sign': '',}
payload = { 'command': 'returnCompleteBalances',
'account': 'all'}
secret = 'mySecret'
NONCE_COUNTER = count(int(time.time() * 1000))
headers['nonce'] = next(NONCE_COUNTER)
request = requests.Request(
'POST', 'https://poloniex.com/tradingApi',
params=payload, headers=headers)
signature = hmac.new(secret, request.body, digestmod=hashlib.sha512)
request.headers['Sign'] = signature.hexdigest()
with requests.Session() as session:
response = session.send(request)
以下行:
signature = hmac.new(secret, request.body, digestmod=hashlib.sha512)
引发此错误:“请求”对象没有属性“正文”
你的源代码有几个问题:
params
,但您需要参数data
。.prepare()
方法。nonce
需要在 中指定payload
,而不是在 中headers
。这应该有效:
import requests
import hmac
import hashlib
from itertools import count
import time
NONCE_COUNTER = count(int(time.time() * 1000))
headers = { 'Key' : 'myKey',
'Sign': '',}
payload = { 'nonce': next(NONCE_COUNTER),
'command': 'returnCompleteBalances',
'account': 'all'}
secret = 'mySecret'
request = requests.Request(
'POST', 'https://poloniex.com/tradingApi',
data=payload, headers=headers).prepare()
signature = hmac.new(secret, request.body, digestmod=hashlib.sha512)
request.headers['Sign'] = signature.hexdigest()
with requests.Session() as session:
response = session.send(request)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句