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”,需要在文件名前加上@符号。