好的,阿杰 😄,我帮你整理一份 Linux 下使用 curl 发送 POST 请求的详解教程,从基础语法到常用示例和高级技巧。


🐧 Linux curl 发送 POST 请求


一、curl 基础

  • curl 是 Linux 下的命令行工具,用于 发送 HTTP 请求
  • 支持:GET、POST、PUT、DELETE 等方法
  • 可以与 API、Web 服务交互,调试接口非常方便

基本语法

curl [options] [URL]

二、发送 POST 请求

1. 基本 POST

curl -X POST http://example.com/api
  • -X POST 指定请求方法为 POST
  • 如果没有 -X,默认是 GET

2. 发送表单数据(application/x-www-form-urlencoded

curl -X POST -d "username=ajie&password=123456" http://example.com/login
  • -d 或 --data:发送表单数据
  • 多个 -d 参数会自动拼接为 &

3. 发送 JSON 数据

curl -X POST -H "Content-Type: application/json" \
     -d '{"username":"ajie","password":"123456"}' \
     http://example.com/api/login
  • -H 添加请求头
  • -d 传 JSON 字符串

4. 从文件读取 POST 数据

curl -X POST -H "Content-Type: application/json" \
     -d @data.json \
     http://example.com/api/login
  • @ 表示从文件读取数据

三、发送带 Header 的 POST 请求

curl -X POST http://example.com/api \
     -H "Authorization: Bearer TOKEN123" \
     -H "Content-Type: application/json" \
     -d '{"key":"value"}'
  • 可添加多个 -H
  • 常用于带 token 的 API 请求

四、保存响应到文件

curl -X POST -d "param=value" http://example.com/api -o response.json
  • -o 或 --output:保存响应内容到文件

五、显示详细请求信息

curl -X POST -d "param=value" http://example.com/api -v
  • -v 输出详细请求头和响应头信息
  • -i 只显示响应头

六、使用 --data-binary 发送原始数据

curl -X POST --data-binary @file.bin http://example.com/upload
  • 保持数据原样发送,适合上传二进制文件

七、其他常用参数

参数说明
-u user:pass基本认证(Basic Auth)
-F "file=@localfile"上传文件(multipart/form-data)
-L跟随重定向
-k忽略 HTTPS 证书验证
-s静默模式,不显示进度条
-w "%{http_code}"输出 HTTP 状态码

八、示例:完整 POST 请求

curl -X POST https://api.example.com/login \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer TOKEN123" \
     -d '{"username":"ajie","password":"123456"}' \
     -o response.json \
     -w "HTTP状态码: %{http_code}\n" \
     -s -L
  • -o response.json → 保存响应
  • -w "%{http_code}" → 输出状态码
  • -s → 静默模式
  • -L → 跟随重定向