當 JSON 路徑作為變數提供時,使用 bash 腳本中的curl 傳送 JSON

當 JSON 路徑作為變數提供時,使用 bash 腳本中的curl 傳送 JSON

我只是無法理解為什麼我所有的嘗試都失敗了。當 JSON 的路徑定義為變數時,我嘗試使用curl 將帶有 json 的 POST 請求傳送到特定的 url:

#!/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} 中的雙引號

相關內容