gpt4 book ai didi

python - 为什么请求在运行函数时会返回错误?

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:17 24 4
gpt4 key购买 nike

Bittrex Api 上有一个名为 getbalance 的端点它接受一种货币作为字符串并返回该货币的当前余额。在函数中执行请求时,

balance = get_balance('BTC')    

请求返回:

{'message': 'INVALID_SIGNATURE',
'result': None,
'success': False}

功能:

def get_balance(currency):
endpoint = '/account/getbalance'
params = {
'currency' : currency
}
return call_endpoint(endpoint, False, params)

调用端点:

def call_endpoint(endpoint, isPublic, params = None):
base_url = 'https://bittrex.com/api/v1.1'
url = (base_url + endpoint +
'?apikey=' + API_KEY +
'&nonce=' + str(time.time())).encode('utf-8')
signature = hmac.new(SECRET_KEY, url, hashlib.sha512).hexdigest()
headers = {'apisign' : signature}
r = requests.get(url, headers = headers, params=params)
return r

但是,如果我在函数之外请求它:

url = ('https://bittrex.com/api/v1.1/account/getbalance' + 
'?apikey=' + API_KEY +
'&nonce=' + str(time.time()) +
'&currency=BTC').encode('utf-8')
signature = hmac.new(SECRET_KEY, url, hashlib.sha512).hexdigest()
headers = {'apisign' : signature}
r = requests.get(url, headers = headers)

它有效。

{'message': '',
'result': {'Available':
...,
'success': True}

这两种方法具有相同的代码,那么是否有 python 函数或 requests 库导致此错误?

最佳答案

这两种方法没有做同样的事情。

您的 call_endpoint 函数在不带 currency 参数的情况下计算网址输入上 header 的签名,然后将 requests 添加到货币参数。

您的其他代码段计算包含 currency 参数的网址上的签名。

关于python - 为什么请求在运行函数时会返回错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47679711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com