034 curl命令
命令说明
curl 是命令行下的数据传输工具,支持 HTTP/HTTPS/FTP 等协议,常用于接口测试、下载文件、调试请求头与返回码。
语法
curl [选项]... URL
常用参数
| 参数 | 说明 |
|---|---|
| -o 文件 | 把响应保存为指定文件(output) |
| -O | 按远程文件名保存(URL 末尾名) |
| -I | 只请求响应头(HEAD),不下载正文 |
| -i | 在输出中包含响应头 |
| -L | 跟随重定向(301/302) |
| -X 方法 | 指定请求方法,如 GET/POST/PUT/DELETE |
| -d 数据 | 以 POST 方式发送数据 |
| -H "头" | 添加自定义请求头 |
| -v | 显示请求/响应详细过程(调试用) |
| -s | 静默模式,不显示进度条 |
| -w 格式 | 自定义输出,如 -w "%{http_code}" |
| -u 用户:密码 | Basic 认证 |
| --data-json | 发送 JSON 体(配合 -H Content-Type) |
使用示例
$ curl https://linux.hmyx.cc
GET 请求并输出响应正文
$ curl -I https://linux.hmyx.cc
只查看响应头(状态码、服务器)
$ curl -O https://example.com/file.zip
按原名下载文件
$ curl -o out.html https://example.com
保存为指定文件名
$ curl -L https://t.cn/xxx
跟随短链重定向
$ curl -X POST -d "name=tom" https://api/login
POST 表单数据
$ curl -H 'Content-Type: application/json' -d '{"a":1}' https://api/x发送 JSON 请求
$ curl -s -w "%{http_code}\n" -o /dev/null https://x只看 HTTP 状态码
$ curl -v https://self-signed.badssl.com
调试 TLS 握手
实用技巧
- -O 与 -o:-O 保留远程文件名,-o 自定义本地名;下载重定向后的文件要加 -L。
- 测接口状态码:curl -s -o /dev/null -w "%{http_code}" URL,常用于健康检查脚本。
- POST JSON:curl -H "Content-Type: application/json" -d @body.json URL,@ 表示从文件读取。
- 自签证书跳过校验用 -k(insecure),仅测试环境使用。
- 上传文件用 -F:curl -F "file=@local.txt" URL。
- 与 wget 区别:curl 偏接口调试与单文件,wget 偏批量/递归下载。