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