用curl发送POST请求携带JSON数据需指定POST方法、设置Content-Type为application/json,并通过-d传入合法JSON字符串;推荐使用单行双引号格式或--data-binary@file.json读取文件。
用
发送 POST 请求并携带 JSON 数据,核心是两件事:指定请求方法为
POST
,并正确设置
Content-Type
为
,再把 JSON 数据通过
(或
)传入。
基本格式(推荐)
最标准、最常用的一行命令:
curl-X POST -H "Content-Type: application/json" -d '{"key":"value","num":123}' https://api.example.com/endpointphp版微信js-sdk支付接口类php版微信js-sdk支付接口类下载
关键参数说明
-X POST
:显式声明请求方法(可省略,因为
默认触发 POST)
-H "Content-Type: application/json"
:必须加,否则服务端可能无法识别 JSON 体
-d '{"key":"value"}'
:JSON 数据要写成**单行字符串**,字段名和字符串值都必须用双引号(JSON 标准要求)
如果 JSON 内容较长或含特殊字符(如换行、单/双引号),建议用
从文件读取
实用技巧与常见写法
省略
(更简洁):
curl -H "Content-Type: application/json" -d '{"name":"Alice"}' https://api.example.com/users
发送空 JSON 对象:
curl -H "Content-Type: application/json" -d '{}' https://api.example.com/ping
从文件读取(推荐用于复杂 JSON):
curl -H "Content-Type: application/json" --data-binary @data.json https://api.example.com/upload
带认证或额外 Header(如 Token):
curl -H "Content-Type: application/json" -H "Authorization: Bearer abc123" -d '{"msg":"hi"}' https://api.example.com/msg
注意避坑
别用单引号包裹整个 JSON(如
)—— shell 会报错;内部单引号需转义或改用双引号
别漏掉
头,否则后端常返回 415 Unsupported Media Type
中文或特殊字符确保 JSON 是 UTF-8
编码
,Linux 终端一般默认支持,无需额外处理
调试时加
查看完整请求/响应:
curl -v -H "Content-Type: application/json" -d '{"test":true}' https://httpbin.org/post
基本上就这些。记住三要素:POST 方法、JSON 头、合法 JSON 字符串 —— 其他都是锦上添花。
curlapplication/json-d--data-d--data-binary @file.json-X POST'{"k":'v'}'Content-Type-v