我想用Databox做一个curl请求来推送一些矩阵,并想在shell脚本中完成它。下面是databox POST请求示例(它像魅力一样工作)
curl https://push.test
-u token
:
-X POST
-H 'Content-Type: application/json'
-H 'Accept: application/vnd.databox.v2+json'
-d '{
"data":[
{
"$testcount": 50,
"test_name": "test"
}
]
}'
当我形成json主体作为一个单独的json字符串,并试图传递作为参数,它不起作用,并给出一个json解析错误。我不确定我在这里做错了什么。有人能帮忙吗?我是shell脚本新手
#!/bin/bash
JSON_STRING= '{"data" : [{"$testcount":50,"testname":"test"}]}'
echo "$JSON_STRING"
curl https://testpush
-u token
:
-X POST
-H 'Content-Type: application/json'
-H 'Accept: application/vnd.databox.v2+json'
-d '$JSON_STRING'
错误:{"type":"invalid_json","message":"Invalid request body - JSON parse error"}
我已经为请求添加了令牌,因此授权应该可以工作。
=
周围有多余的空白。
另外,$JSON_STRING
在第二个脚本的最后一行应该在双引号中而不是单引号中,以使其扩展到您刚刚设置的内容。
顺便说一句。,如果数据失去控制或敏感,您可能希望查看是否有可能以字母@
开始数据,然后将其余部分作为包含该数据的文件名。