Closed sunysen closed 4 years ago
def gen_sign(method, url, query_string=None, payload_string=None): key = 'xxxxx' # api_key secret = 'xxxxx' # api_secret current_time = time.time() m = hashlib.sha512() if payload_string is not None: m.update(payload_string.encode('utf-8')) hashed_payload = m.hexdigest() s = '%s\n%s\n%s\n%s\n%s' % (method, url, query_string or "", hashed_payload, current_time) sign = hmac.new(secret.encode('utf-8'), s.encode('utf-8'), hashlib.sha512).hexdigest() return {'KEY': key, 'Timestamp': str(current_time), 'SIGN': sign} if __name__ == "__main__": host = "https://api.gateio.ws" prefix = "/api/v4" common_headers = {'Accept': 'application/json', 'Content-Type': 'application/json'} url = '/futures/accounts' sign_headers = gen_sign('GET', prefix + url, "", None) sign_headers.update(common_headers) print('signature headers: %s' % sign_headers) res = requests.post(host + prefix + url, headers=sign_headers, data=None) print(res.status_code) print(res.content)
requests 调用的是 post 方法,但是参与验签用的是 GET
post
GET