我正在尝试使用 curl 发送 POST 请求,但我想将 json 数据存储在一个变量中,以便在发生错误时重新发送它。我使用了这段代码:
jsonvariable="{"ora" : "value1", "temp" : "value2", "rh" : "value3", "lat" : "value4", "longi" : "value5"}"
curl -X POST -H "Content-Type: application/json" -d '$jsonvariable' http://localhost:8080/updates
但选项后的格式-d
不正确。你能帮助我吗?
这段代码:
curl -X POST -H "Content-Type: application/json" -d '{"ora" : "value1", "id" : "value2", "temp" : "value3","rh" : "value4", "lat" : "value5", "longi" : "value6"}' http://localhost:8080/updates
相反,没有错误
您使用了单引号来防止变量被扩展。改用双引号:
如果您的变量内容包含双引号,您可以使用例如反斜杠将它们引用。
您可以在此处省略
-X POST
,因为如果您指定要发送的数据,则 POST 是默认方法-d
。进一步阅读引用
bash
:如何输入名称中包含特殊字符的文件或目录?