张芷铭的个人博客

curl 是跨平台命令行工具,用于客户端与服务器之间传输数据,支持 HTTP/HTTPS/FTP 等多种协议,是接口调试和网络传输的必备工具。

核心参数

请求方法

参数说明
-X METHOD指定请求方法(GET/POST/PUT/DELETE)
-d DATA发送 POST 数据
-F KEY=VALUE表单提交,支持文件上传

请求头

参数说明
-H HEADER自定义请求头
-A UA设置 User-Agent
-b COOKIES携带 Cookie

输出控制

参数说明
-o FILE保存响应到文件
-O按服务器文件名保存
-s静默模式
-i显示响应头+响应体
-I仅显示响应头
-v详细调试模式
-L跟随重定向

网络配置

参数说明
-x PROXY设置代理
-k忽略 HTTPS 证书
-u USER:PASSHTTP 基本认证

常用示例

GET 请求

1
2
curl https://api.example.com/user/1
curl -i https://api.example.com/user/1  # 显示响应头

POST 表单

1
curl -d "username=test&password=123" https://api.example.com/login

POST JSON

1
2
curl -X POST -H "Content-Type: application/json" \
  -d '{"username":"test"}' https://api.example.com/login

文件上传

1
curl -F "file=@/path/to/file.png" https://api.example.com/upload

下载文件

1
2
curl -O https://example.com/file.zip
curl -C - -O https://example.com/large.zip  # 断点续传

Cookie 管理

1
2
curl -b "session=abc" https://api.example.com/user
curl -c cookie.txt https://api.example.com/login  # 保存 Cookie

调试

1
curl -v https://api.example.com  # 详细输出

注意事项

  • POST JSON 时必须指定 Content-Type: application/json
  • 生产环境禁用 -k
  • 敏感信息避免直接写在命令行

Comments