You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用aiohttp调用FTX提现API时遇“Missing parameter coin”错误求助

解决FTX提现请求返回"Missing parameter coin"错误

你用aiohttp发起FTX提现请求时,尽管签名和请求数据逻辑正确,但服务器返回"Missing parameter coin"错误,核心原因是请求体格式未被服务器正确解析。

问题分析

你的代码中使用data=json.dumps(data)传递请求体,但aiohttp默认会将这类字符串请求体识别为application/x-www-form-urlencoded格式,而FTX提现API要求接收application/json格式的请求体,导致服务器无法从请求中解析出coin等参数。

修复方案

有两种简单的修复方式:

方案1:使用aiohttp的json参数直接传递字典

aiohttp的post方法提供了json参数,传入字典后会自动序列化为JSON字符串,并设置Content-Type: application/json请求头,无需手动处理:

async def main(coin, amount, address, method):
    # 传入的参数为TRX, 0.01, TXKbit45oBWoJHcE25NQPYhsHV5P8EqJvN, trx
    ts = int(time.time() * 1000)

    data = {
        "coin": coin,  # TRX
        "size": amount,  # 0.01
        "address": address,  # TXKbit45oBWoJHcE25NQPYhsHV5P8EqJvN
        "method": method  # trx
    }

    signature_payload = f'{ts}POST/api/wallet/withdrawals{json.dumps(data)}'.encode()
    signature = hmac.new(API_SECRET.encode(), signature_payload, 'sha256').hexdigest()

    headers = {
        "FTX-KEY": API_KEY,
        "FTX-TS": str(ts),
        "FTX-SIGN": signature
    }

    async with aiohttp.ClientSession() as session:
        withdrawal = await session.post(
            "https://ftx.com/api/wallet/withdrawals",
            headers=headers,
            json=data  # 改用json参数传递字典
        )
        print(await withdrawal.text())

方案2:手动设置Content-Type请求头

如果坚持使用data参数传递JSON字符串,需要在请求头中明确添加Content-Type: application/json:

headers = {
    "FTX-KEY": API_KEY,
    "FTX-TS": str(ts),
    "FTX-SIGN": signature,
    "Content-Type": "application/json"  # 新增指定内容类型
}

# 请求代码保留原写法
withdrawal = await session.post(
    "https://ftx.com/api/wallet/withdrawals",
    headers=headers,
    data=json.dumps(data)
)

补充优化

建议使用async with管理ClientSession,无需手动调用close(),代码更简洁且能确保会话正确关闭。

内容的提问来源于stack exchange,提问作者Lone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:15:39