我正在向服务器发送curl命令,但收到一条我不理解的错误消息。
我需要发送到服务器的请求是
body=$(cat << EOF
{
"order": {
"units": "100",
"instrument": "EUR_USD",
"timeInForce": "FOK",
"type": "MARKET",
"positionFill": "DEFAULT"
}
}
EOF
)
curl \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer TOKEN>" \
-d "$body" \
"https://api-fxtrade.oanda.com/v3/accounts/<ACCOUNT>/orders"
我要做的是将其转换为curl命令:
curlcmd ='curl -s \ -X POST \ -H“内容类型:application / json” \ -H“授权:承载” \ -d“ {” order“:{” units“:” 100“ ,“工具”:“ EUR_USD”,“ timeInForce”:“ FOK”,“类型”:“ MARKET”,“ positionFill”:“ DEFAULT”}}” \“ https://api-fxpractice.oanda.com/v3/accounts/AccountID/orders”'
我通过Matlab通过resp = system(curlcmd)将命令发送到服务器。我收到的错误消息是:
errorMessage:'无效的JSON,ParseErrorCode:4,消息:缺少对象成员的名称。'
任何想法都意味着什么,我该如何解决?我在Windows 10上使用Matlab,因此curl是Windows 10的一部分。
响应应该是下订单和交易的响应数据。
答案 0 :(得分:1)
似乎没有正确引用JSON。
尝试一下:
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer " -d "{\"order\": {\"units\": \"100\", \"instrument\": \"EUR_USD\", \"timeInForce\": \"FOK\", \"type\": \"MARKET\", \"positionFill\": \"DEFAULT\" }}" "https://api-fxpractice.oanda.com/v3/accounts/AccountID/orders"
使用代理进行测试
使用适当的JSON引号转义符,如上面的CURL命令行所示,在HTTPS代理中查看JSON时看起来是正确的: