Python Poloniex API returns 错误 422
Python Poloniex API returns error 422
我有方法,应该 return 通过他们的 API 从 Poloniex 取得余额。下面的代码。
def getBalance(self):
polo_data = {"command": "returnBalances", "nonce": int(time.time() * 1000)}
post_data = urllib.parse.urlencode(polo_data).encode()
sig = hmac.new(str.encode(self.SETTINGS.PRIVATE_KEY), post_data, hashlib.sha512).hexdigest()
headers = {
"Key": self.SETTINGS.PUBLIC_KEY,
"Sign": sig}
req = urllib.request.Request(self.SETTINGS.BASE_URI + self.SETTINGS.TRADE_DIR,
data=post_data, headers=headers)
try:
res = urllib.request.urlopen(req)
result = json.loads(res.read().decode('utf-8'))
print(result)
except urllib.error.HTTPError as e:
print(f'Headers: {e.headers}')
print(f'Status: {e.status}')
print(f'MSG: {e.msg}')
print(f'reason: {e.reason}')
print(f'url: {e.url}')
print(f'Name: {e.name}')
当我 运行 此代码时 return 消息 HTTPError 422 我认为问题出在 post_data 上。我尝试对请求执行相同的操作,但收到错误消息:"Error: Invalid command" 但我无法理解具体位置。从另一边看,buy/sell 订单命令的相同代码非常有效。
我正在使用 Python 3.6.1
有什么建议吗?
我找到了我的问题的答案。问题出在随机数上。正确的代码是:
int(time.time() * 10000)
不是 1000,而是 10000
我有方法,应该 return 通过他们的 API 从 Poloniex 取得余额。下面的代码。
def getBalance(self):
polo_data = {"command": "returnBalances", "nonce": int(time.time() * 1000)}
post_data = urllib.parse.urlencode(polo_data).encode()
sig = hmac.new(str.encode(self.SETTINGS.PRIVATE_KEY), post_data, hashlib.sha512).hexdigest()
headers = {
"Key": self.SETTINGS.PUBLIC_KEY,
"Sign": sig}
req = urllib.request.Request(self.SETTINGS.BASE_URI + self.SETTINGS.TRADE_DIR,
data=post_data, headers=headers)
try:
res = urllib.request.urlopen(req)
result = json.loads(res.read().decode('utf-8'))
print(result)
except urllib.error.HTTPError as e:
print(f'Headers: {e.headers}')
print(f'Status: {e.status}')
print(f'MSG: {e.msg}')
print(f'reason: {e.reason}')
print(f'url: {e.url}')
print(f'Name: {e.name}')
当我 运行 此代码时 return 消息 HTTPError 422 我认为问题出在 post_data 上。我尝试对请求执行相同的操作,但收到错误消息:"Error: Invalid command" 但我无法理解具体位置。从另一边看,buy/sell 订单命令的相同代码非常有效。
我正在使用 Python 3.6.1
有什么建议吗?
我找到了我的问题的答案。问题出在随机数上。正确的代码是:
int(time.time() * 10000)
不是 1000,而是 10000