我正在尝试移植一个用于连接到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'}
感谢。
答案 0 :(得分:0)
原始脚本具有Request的DATA和HEADERS组件,但以某种方式格式化,使Python 3认为HEADERS部分是一个TIMEOUT参数,并抛出一个需要成为INT的错误。这让我陷入了疯狂的追逐,试图连接DATA和HEADERS。