将Cryptsy authenticatedAPI移植到Python 3

时间:2014-07-09 11:25:39

标签: authentication python-3.x

我正在尝试移植一个用于连接到Cryptsy经过身份验证的API到Python 3.3的类。我已经设法解决了数据类型问题,并且得到的东西至少得到了来自网站的请求,但它拒绝了我的身份验证,这是代码,API密钥不包括在内,原因显而易见......:

req['method'] = method
req['nonce'] = int(time.time())
post_data = urllib.parse.urlencode(req)
sign = hmac.new(self.Secret, str.encode(post_data), hashlib.sha512).hexdigest()
headers = {
    'Sign': sign,
    'Key': self.APIKey
}
print('headers: ',headers)
print('post data: ',post_data)
b=urllib.parse.urlencode(headers)
print(b)
test=post_data + '&'+ b
print('test: ',test)
data=test.encode()
print('data: ',data)
ret = urllib.request.urlopen(urllib.request.Request('https://www.cryptsy.com/api', data))
q=ret.read()
w=q.decode()
e=json.loads(w)
return self.post_process(e)

这是来自服务器的响应:

{'error': 'Unable to Authorize Request - Check Your Post Data', 'success': '0'}

感谢。

1 个答案:

答案 0 :(得分:0)

原始脚本具有Request的DATA和HEADERS组件,但以某种方式格式化,使Python 3认为HEADERS部分是一个TIMEOUT参数,并抛出一个需要成为INT的错误。这让我陷入了疯狂的追逐,试图连接DATA和HEADERS。