如何在 Unix Shell 脚本中读取 JSON 文件,然后通过curl 作为 HTTP POST 发送?

如何在 Unix Shell 脚本中读取 JSON 文件,然后通过curl 作为 HTTP POST 发送?

我正在尝试从 Unix Shell 脚本读取 JSON 文件(与 位于同一目录内product.json)并使用 发送它curl

curlProduct.sh

for file in ~/work/project/json/product.json

do 
  echo "$file"
   curl -X POST --data @"$file" 'http://localhost:8080/api/v1/purchaseProduct' \
   --header 'Content-Type:application/json' \ 
   --header 'Authorization: Bearer f682e27f-daf6-234r-3456-623b9fe65bds'

  echo "After HTTP POST"  
done

当我使用以下命令运行此命令时:

sh curlProduct.sh

它所做的唯一事情是打印完全限定的文件路径(连同名称)似乎挂在这一行,迫使我每次都echo "$file"发出取消命令:control-c

/Users/pnwlover/work/project/json/product.json

我可能做错了什么?

答案1

通过重新排列参数让它像这样工作curl,如下所示:

  curl -X POST -H 'Content-Type:application/json' -H 'Authorization: Bearer 20fa6074-4478-47d3-ds6c-b87be44bd74c' \
    --data @"$file" 'http://localhost:8080/api/v1/purchaseProduct'; 
    

相关内容