Linux curl 怎么发送 POST/JSON 请求?标准格式

发布时间 - 2025-12-05 00:00:00    点击率:
用curl发送POST请求携带JSON数据需指定POST方法、设置Content-Type为application/json,并通过-d传入合法JSON字符串;推荐使用单行双引号格式或--data-binary@file.json读取文件。

curl 发送 POST 请求并携带 JSON 数据,核心是两件事:指定请求方法为 POST,并正确设置 Content-Typeapplication/json,再把 JSON 数据通过 -d(或 --data)传入。

基本格式(推荐)

最标准、最常用的一行命令:

curl -X POST -H "Content-Type: application/json" -d '{"key":"value","num":123}' https://api.example.com/endpoint

关键参数说明

  • -X POST:显式声明请求方法(可省略,因为 -d 默认触发 POST)
  • -H "Content-Type: application/json":必须加,否则服务端可能无法识别 JSON 体
  • -d '{"key":"value"}':JSON 数据要写成**单行字符串**,字段名和字符串值都必须用双引号(JSON 标准要求)
  • 如果 JSON 内容较长或含特殊字符(如换行、单/双引号),建议用 --data-binary @file.json 从文件读取

实用技巧与常见写法

  • 省略 -X POST(更简洁):
    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(如 '{"k":'v'}')—— shell 会报错;内部单引号需转义或改用双引号
  • 别漏掉 Content-Type 头,否则后端常返回 415 Unsupported Media Type
  • 中文或特殊字符确保 JSON 是 UTF-8 编码,Linux 终端一般默认支持,无需额外处理
  • 调试时加 -v 查看完整请求/响应:
    curl -v -H "Content-Type: application/json" -d '{"test":true}' https://httpbin.org/post

基本上就这些。记住三要素:POST 方法、JSON 头、合法 JSON 字符串 —— 其他都是锦上添花。


# linux  # js  # json  # 编码  # app  # 后端  # curl 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android仿QQ列表左滑删除操作  jquery插件bootstrapValidator表单验证详解  如何在 React 中条件性地遍历数组并渲染元素  EditPlus中的正则表达式实战(6)  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  网站优化排名时,需要考虑哪些问题呢?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  HTML 中如何正确使用模板变量为元素的 name 属性赋值  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  WordPress 子目录安装中正确处理脚本路径的完整指南  香港服务器网站卡顿?如何解决网络延迟与负载问题?  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  如何在景安服务器上快速搭建个人网站?  香港服务器租用每月最低只需15元?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  如何用腾讯建站主机快速创建免费网站?  如何在服务器上配置二级域名建站?  Laravel怎么调用外部API_Laravel Http Client客户端使用  详解jQuery中的事件  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何在云主机上快速搭建网站?  简历没回改:利用AI润色让你的文字更专业  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel distinct去重查询_Laravel Eloquent去重方法  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  php485函数参数是什么意思_php485各参数详细说明【介绍】  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  教你用AI将一段旋律扩展成一首完整的曲子  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  Linux后台任务运行方法_nohup与&使用技巧【技巧】  如何用搬瓦工VPS快速搭建个人网站?  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  西安专业网站制作公司有哪些,陕西省建行官方网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  MySQL查询结果复制到新表的方法(更新、插入)  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  长沙企业网站制作哪家好,长沙水业集团官方网站?  JavaScript如何操作视频_媒体API怎么控制播放  独立制作一个网站多少钱,建立网站需要花多少钱?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  zabbix利用python脚本发送报警邮件的方法