为什么通过函数运行时请求返回错误?

Kun Yu

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

balance = get_balance('BTC')    

请求返回:

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

功能:

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

call_endpoint:

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函数或请求库的某些内容会导致此错误吗?

乔纳森·瓦纳斯科

这两种方法不会做相同的事情。

您的call_endpoint函数会在没有currency参数的情况下为url输入上的标头计算签名,然后requestscurrency参数中添加

您的其他代码段将在包含currency参数的URL上计算签名

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Left函数返回运行时错误'424'?

Express-为什么POST请求按预期运行时,PUT请求为什么会返回404错误?

如果发生任何运行时错误,为什么返回垃圾值?

为什么正确编译C ++类构造函数后发生运行时错误

为什么此函数应用程序会在purescript中生成运行时错误?

为什么Linux无法捕获C ++运行时错误,例如使用浅拷贝构造函数?

为什么在这个函数 C++ 深度优先搜索中出现运行时错误?

在函数参数中,为什么 (i++) 在 (i+1) 运行时出现错误

为什么tkinter模块通过命令行运行而不是通过IDLE运行时会引发属性错误?

Excel VBA:.find函数返回运行时错误91

“格式”函数返回运行时错误 424

为什么我的带有聚合函数的SQL查询在较大的查询中运行时会向我返回错误的值?

为什么getenv()仅在从终端运行时才返回变量,而不是通过Web服务器返回变量

为什么该程序在运行时出现错误

为什么io.WriterString出现运行时错误?

为什么会出现运行时错误?

为什么会出现访问冲突运行时错误?

为什么我的代码出现运行时错误?

为什么我的代码给出运行时错误?

为什么 bfs c ++ 中的运行时错误

为什么在线判断运行时错误?

为什么这会显示运行时错误?

performSegueWithIdentifier给出运行时错误,为什么?

为什么在正常浏览无法正常运行时,在React / GraphQL应用上运行Cypress会返回网络错误?

为什么Tokio返回错误“在不允许阻塞的上下文中不能删除运行时”?

我无法确定为什么在通过io运行时收到java.lang.Nullpointerexception错误消息

为什么在此延迟语句(无返回)运行时不返回返回值?

为什么 gdalinfo --version 在终端上运行时与通过 python 运行时显示不同的输出?

通过GUI查询工作正常,但尝试通过Dapper运行时返回一般错误