发布于 2年前

curl post请求发送json数据两种方式(Window/Linux)

设置请求头Content-Type

curl发送post请求,默认的content-type是:application/x-www-form-urlencoded。要发送json格式,则需要设置请求头的content-type为application/json

使用-H 或--header参数设置content type:

-H "Content-Type: application/json"

发送数据

发送数据使用的是-d--data参数,curl支持两种请求方式:

  • 直接在命令行中输入json字符串
  • 发送json文件

Linux命令行输入json字符串发送数据

curl -X POST http://localhost:8080/api -H "Content-Type: application/json" \
  -d '{"p1":"xyz","p2":"xyz"}'

其中:-d参数使用单引号括起整个字符串,json内容里的属性以及值使用双引号。

Windows命令行直接输入json字符串发送数据

这里特别要说明的是:Windows下,-d参数后不能使用单引号把发送的json字符串括起来,需要使用双引号。而json内容里的属性的双引号需要做转义:

curl -X POST http://localhost:8080/api -H "Content-Type: application/json" \
  -d "{\"p1\":\"xyz\",\"p2\":\"xyz\"}"

使用json文件发送数据

如果数据量比较大,则适合使用json文件发送。示例如下:

curl -X POST http://localhost:8080/api -H "Content-Type: application/json" -d @sendfile.json

注意:示例中的文件名是“sendfile.json”,需要在文件名前加上@符号。

©2020 edoou.com   京ICP备16001874号-3