curl是一款开源的命令行工具,全称为Client URL,主要用于通过URL语法在命令行下传输数据,支持HTTP、HTTPS、FTP、SFTP等多种网络协议,是开发者和运维人员日常工作中常用的调试工具之一。

curl的基本语法结构
curl的基础命令格式非常简单,核心结构由命令本身、可选参数和目标URL组成,基本形式如下:
curl [可选参数] [目标URL]
如果不添加任何参数直接执行curl加URL,默认会向目标地址发送GET请求,并将服务器返回的响应内容直接输出到终端。
常用参数说明
以下是curl日常使用频率较高的参数,覆盖大部分基础场景:
| 参数 | 作用说明 |
|---|---|
| -X | 指定请求方法,比如GET、POST、PUT、DELETE等 |
| -H | 添加请求头,格式为"键: 值" |
| -d | 发送请求体数据,常用于POST请求 |
| -o | 将响应内容保存到指定文件,而非输出到终端 |
| -i | 显示响应头信息,同时输出响应体内容 |
| -v | 开启详细模式,输出完整的请求和响应过程信息 |
| -u | 添加用户认证信息,格式为"用户名:密码" |
常见使用场景示例
1. 发送GET请求
最简单的GET请求无需额外参数,直接指定URL即可:
# 发送GET请求获取网页内容 curl https://ipipp.com
如果需要携带查询参数,可以直接拼接在URL后面:
# 携带查询参数的GET请求 curl "https://ipipp.com/api/list?page=1&size=10"
2. 发送POST请求
发送POST请求时通常需要指定请求方法、请求头和请求体:
# 发送JSON格式的POST请求
curl -X POST
-H "Content-Type: application/json"
-d '{"name":"test","age":20}'
https://ipipp.com/api/user
如果需要发送表单格式的数据,可以调整请求头和内容:
# 发送表单格式的POST请求 curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "username=admin&password=123456" https://ipipp.com/api/login
3. 下载文件
使用-o参数可以将响应内容保存为文件,实现文件下载:
# 下载文件并保存为本地指定名称 curl -o local_file.zip https://ipipp.com/files/demo.zip
如果需要使用原文件名保存,可以使用-O参数:
# 使用原文件名保存下载的文件 curl -O https://ipipp.com/files/demo.zip
4. 携带认证信息请求
对于需要基础认证的接口,可以使用-u参数添加认证信息:
# 携带基础认证信息发送请求 curl -u admin:password123 https://ipipp.com/api/protected
5. 查看请求详情
使用-v参数可以查看完整的请求和响应过程,方便调试问题:
# 开启详细模式查看请求过程 curl -v https://ipipp.com
注意事项
- 如果URL中包含特殊字符,比如&、空格等,建议用单引号或双引号包裹URL,避免被shell解析出错
- 发送POST请求的JSON数据时,注意引号的正确使用,避免语法错误
- 部分参数在不同系统下的curl版本可能存在差异,建议通过
curl --version查看当前版本的支持情况