首页 > 解决方案 > 为什么 Oanda 订单请求会给出错误消息?

问题描述

我正在尝试向 Oanda 发送订单请求,但收到以下错误消息:{"errorMessage":"Unable to parse JSON body."}。我一直在研究这个问题一个星期,但没有找到解决方案。我检查并重新检查了所有 Oanda API 要求,一切似乎都是正确的。似乎身份验证很好,当我将 POST 方法更改为 GET 并稍微更改代码时,我会从我的帐户中收到所有交易历史记录。我对 V20 Python 包装器不感兴趣,我宁愿从头开始编写所有代码。根据该消息,我发送的订单请求似乎不正确,原因可能是请求库使用不当或参数问题。任何输入如何使代码工作将不胜感激。谢谢你。

import requests

domain = 'api-fxpractice.oanda.com'
access_token = 'TOKEN'
account_id = 'ACCOUNT_ID'
Pair = "EUR_USD"

url = "https://" + domain + "/v3/accounts/" + account_id + "/orders"
headers = {"Authorization" : "Bearer "  + access_token}
params = {
      "type": "MARKET",
      "instrument": "EUR_USD",                        
      "units": "100",
      "timeInForce": "FOK",
      "positionFill": "DEFAULT"
         }
RequestData = requests.post(url, headers = headers, params = params)
print(RequestData.text)`

标签: pythonapi

解决方案


看起来 API 在正文中需要 JSON,所以要实现这一点,请导入 json 库: import json

params = params对于data = json.dumps(params)将 POST 正文中的数据作为 JSON 发送的请求更改。完整的请求将是:

RequestData = requests.post(url, headers = headers, data = json.dumps(params))


推荐阅读