curl工具
curl 是一个用于命令行发送网络请求的工具,全称为 “Client URL”。它支持众多协议,包括:
HTTP,HTTPSFTP,FTPSSFTPSCPSMTPFILE(本地文件)
主要用于从命令行或脚本中与服务器通信,非常适合调试 API、测试 HTTP 请求、下载文件等
常用参数
| 参数 | 含义 |
|---|---|
-X | 指定请求方法,如 GET, POST, PUT |
-d | 请求体数据(自动使用 application/x-www-form-urlencoded) |
-H | 自定义请求头 |
-F | 模拟表单上传(multipart/form-data) |
-o | 保存输出到文件 |
-I | 仅获取响应头信息(HEAD 请求) |
-L | 跟随重定向 |
-s | 静默模式(不显示进度条或错误) |
-v | 显示详细请求过程(调试用) |
--compressed | 启用压缩支持(如 gzip) |
--http2 | 使用 HTTP/2 协议 |
记忆和理解
| 参数 | 英文全称 / 含义 | 中文说明 | 记忆钩子 | 典型用法 |
|---|---|---|---|---|
URL | GET (default) | 默认 GET,请求并输出 body | 不写参数 = 浏览器 | curl https://example.com |
-I | HEAD request | 只请求响应头 | I = Information / Head | curl -I URL |
-i | include headers | 输出响应头 + body | i = include | curl -i URL |
-L | Location | 跟随重定向 | L = Location | curl -L URL |
-X METHOD | extended method | 指定 HTTP 方法 | X = 显式指定 | -X POST |
-d DATA | data | 请求体(form/json) | d = data | -d "a=1" |
-H HEADER | Header | 自定义请求头 | H = Header | -H "Auth: xxx" |
-o FILE | output | 保存为文件 | o = output | -o out.html |
-s | silent | 静默模式 | s = silent | curl -s URL |
-w FORMAT | write-out | 输出自定义信息 | w = write | -w "%{http_code}" |
-v | verbose | 调试模式 | v = very talkative | curl -v URL |
--max-time N | maximum time | 最大超时时间(秒) | 最多等 N 秒 | --max-time 5 |
-k | insecure | 忽略 SSL 校验 | k = 不安全也行 | -k https:// |
-F FIELD | form | multipart 表单 / 文件 | F = Form / File | -F file=@a.txt |
常用场景
调试API
curl -X GET https://api.example.com/articles -H "Authorization: Bearer abc123"
模拟表单
curl -d "username=admin&password=123456" https://example.com/login
下载文件
curl -O https://example.com/image.png