从 bash 脚本发送 POST 请求

Ber*_*ian 14 bash json http-post

我想bash在发出POST请求后执行一个脚本。到目前为止,我正在使用它Postman来发送请求,但我想知道是否可以从bash脚本以及将json文件作为参数以某种方式执行此操作。

curl到目前为止,我已经研究过,但它不起作用:

bash文件

curl -X POST -d req.json http://localhost:9500
Run Code Online (Sandbox Code Playgroud)

JSON 文件 ( req.json)

{
    "id":5,
    "name":"Dan",
    "age":33,
    "cnp":33,
    "children":100,
    "isMarried":0
}
Run Code Online (Sandbox Code Playgroud)

我只是收到错误:

HTTP/1.0 503 Service Unavailable
Run Code Online (Sandbox Code Playgroud)

与尾随 HTML

eda*_*mon 16

curl应该做的工作。这将使用数据req.json作为正文发送一个普通的 POST 请求:

curl -X POST -H "Content-Type: application/json" -d @req.json http://localhost:9500
Run Code Online (Sandbox Code Playgroud)

您缺少的元素是-H "Content-Type: application/json"@数据标志中的 。如果没有上述-H标志,curl将发送内容类型application/x-www-form-urlencoded,如果他们期望 JSON,大多数应用程序将不会接受。将@-d标志运筹学curl要传递一个文件名; 否则它使用文本本身(即“req.json”)作为数据。

  • 如果你只想将 json 放入命令中,请执行以下操作: `curl -X POST -H "Content-Type: application/json" -d '{"message": "hello "}' http://localhost: 9500` (5认同)