我正在向服务器发送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“内容类型:应用程序/json”\ -H“授权:持有者”\ -d“{”订单“:{”单位“:"100",”仪器“:"EUR_USD","timeInForce":"FOK",”类型“:”市场“,"positionFill":”默认“}}”\ "https://api-fxpractice.oanda.com/v3/accounts/AccountID/orders"‘
我通过Matlab将命令通过resp = system (curlcmd)发送到服务器。我得到的错误消息是:
errorMessage:‘无效的JSON,ParseErrorCode: 4,消息:缺少对象成员的名称。’
你知道这意味着什么以及我如何解决这个问题吗?我在Windows10上使用Matlab,所以curl是Windows10的一部分。
响应应该是交易的下单和响应数据。
发布于 2019-01-04 06:41:04
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看起来是正确的:
https://stackoverflow.com/questions/54030210
复制相似问题