当 JSON 路径作为变量提供时,使用 curl 从 bash 脚本发送 JSON

当 JSON 路径作为变量提供时,使用 curl 从 bash 脚本发送 JSON

我只是不明白为什么我所有的尝试都失败了。我尝试使用 curl 将带有 JSON 的 POST 请求发送到特定 URL,而 JSON 路径定义为变量:

#!/bin/sh

JSON_TMP=/home/aaa/jsons/make_6h_from_1h.json
curl -X POST -H "Content-Type: application/json" --data-binary "@${JSON_TMP}" http://some-url

无论我尝试什么(放入"@${JSON_TMP}""@$JSON_TMP"@"${JSON_TMP}"或其他任何东西)似乎都没有用!

更令人恼火的是,没有任何错误消息或其他信息 - 我只是运行命令并再次得到提示。在另一端我可以看到没有发送 json。

答案1

以下工作:

body_arg=(--data-binary @${filePath})

curl -X POST -H "Content-Type: application/json" "${body_arg[@]}"  http://some-url

答案2

curl -X POST -i -H "Accept: application/json" -H "Content-Type: application/json" --data-binary --data-binary @${JSON_TMP} http://some-url

尝试删除 @${JSON_TMP} 的双引号

相关内容