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