Json Shell脚本不适用于curl请求
我想用Databox发出一个curl请求来推送somemetrix,并想在shell脚本中完成它。 下面是databox POST请求示例(其工作原理类似于一个符咒) 当我将json主体形成为一个单独的json字符串并尝试作为参数传递时,它不起作用,并给出一个json解析错误。我不确定我在这里做错了什么。有人能帮忙吗?我不熟悉shell脚本Json Shell脚本不适用于curl请求,json,bash,shell,curl,Json,Bash,Shell,Curl,我想用Databox发出一个curl请求来推送somemetrix,并想在shell脚本中完成它。 下面是databox POST请求示例(其工作原理类似于一个符咒) 当我将json主体形成为一个单独的json字符串并尝试作为参数传递时,它不起作用,并给出一个json解析错误。我不确定我在这里做错了什么。有人能帮忙吗?我不熟悉shell脚本 #!/bin/bash JSON_STRING= '{"data" : [{"$testcount":50,&quo
#!/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
应该使用双引号,而不是单引号,以便将其展开为您刚才设置的内容
顺便说一句,如果数据失控或敏感,您可能希望研究以字母
@
开始数据的可能性,然后将其余部分作为包含数据的文件名。在=
周围有多余的空格。此外,第二个脚本的最后一行中的$JSON_STRING
应该用双引号括起来,以便将其扩展为您刚才设置的值。我删除了多余的空间并添加了双引号-d'$JSON_STRING''。但仍然得到相同的错误现在删除单引号。我应该说清楚一点。是的,非常感谢:)
#!/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'