ProxyWing

什么是 cURL 命令?

cURL 是一款用于从 URL 传输数据的命令行工具。它还支持多种网络协议,帮助开发人员测试和自动化信息交换,并调试网络连接。无论是传输文件、在命令行中调用 HTTP 接口,还是确认响应是否符合要求,cURL 都是开发人员和系统管理员可以使用的强大工具。

发布时间: 2025年11月10日
最后更新: 2026年6月7日

什么是 cURL?

cURL 是“Client URL”(客户端 URL)的缩写。它是一个开源工具和库,可用于在客户端与服务器之间传输数据。它基于 libcurl 集成构建,支持大多数协议,例如 HTTP、HTTPS、FTP 等。开发人员在自动化脚本中使用它,以自动向 URL 传输信息、处理身份验证并快速查询服务器。由于可以直接在终端中运行,cURL 在 API 测试和自动化测试中非常有用。

cURL 如何工作?

cURL 的工作方式是:从您的终端向服务器发送请求,然后把服务器的响应打印出来。运行命令时,cURL 会打开与 URL 的连接,发送所选的 HTTP 方法以及请求头或数据,并等待回复。随后,它会直接在命令行中返回响应(网页、API 结果或文件),或将其保存到磁盘。

由于只需一条命令即可运行,cURL 很容易放入脚本、定时任务和自动化测试中。发送请求不需要浏览器或图形客户端,因此开发人员用它来测试 API、下载文件以及检查服务器的响应方式。

cURL 命令有什么作用?

cURL 请求向特定 URL 传输或获取信息。它可以发起网页请求、命令行 HTTP 请求、多部分文件上传或 API 端点测试。一些开发人员运行 cURL 请求,检查服务器对使用不同 HTTP 命令(例如 GET、POST、PUT 或 DELETE)提交的信息的响应,并为安全连接执行 SSL 握手验证。

cURL 命令语法

cURL 命令的基本语法遵循一个简单的模式:

curl [options] [URL]

curl 关键字用于开始命令,选项(例如 -i 或 -d)控制请求的行为方式,URL 则是您要访问的地址。选项和 URL 几乎可以按任意顺序组合,单个请求中也可以使用多个选项。如果运行 curl 时只带 URL 而不带任何选项,cURL 会发送一个简单的 GET 请求并打印响应正文。

常用 cURL 命令和选项

cURL 选项(也称为标志或参数)会改变请求的发送方式以及 cURL 返回的内容。选项添加在 curl 关键字之后、URL 之前。以下是开发人员最常用的选项。

选项

作用

示例

-i

在输出中包含响应头和正文

curl -i https://api.example.com

-d

在请求正文中发送数据(默认会将请求变为 POST)

curl -d "name=test" https://api.example.com

-X

设置 HTTP 方法,例如 GET、POST、PUT 或 DELETE

curl -X POST https://api.example.com

-H

添加自定义请求头

curl -H "Authorization: Bearer TOKEN" https://api.example.com

-o

将输出保存到您指定名称的文件中

curl -o page.html https://example.com

-O

使用远程文件自身的名称保存输出

curl -O https://example.com/file.zip

-L

跟随重定向到最终 URL

curl -L https://example.com

-u

传递用户名和密码进行身份验证

curl -u user:pass https://api.example.com

-s

以静默模式运行,隐藏进度和错误输出

curl -s https://example.com

-v

启用详细模式,调试完整的请求和响应

curl -v https://example.com

-k

跳过 SSL 证书检查,允许不安全的连接

curl -k https://example.com

-f

遇到服务器错误时静默失败,而不是打印错误页面

curl -f https://example.com

如需随时查看完整的选项列表,请在终端中运行 curl -h(或 curl --help)。

curl -i 有什么作用?

-i 选项让 cURL 在输出中同时包含响应头和正文。cURL 不会只返回页面或 API 响应,而是先打印 HTTP 状态行和 Content-Type、Set-Cookie 等响应头,再打印正文。当您需要检查服务器实际返回的内容、调试 API 或确认状态码时,这个选项非常有用。

curl -i https://api.example.com/data

如果只想要响应头而不要正文,请使用 -I(大写)。

cURL 的用途

cURL 可免费下载,用于在命令行界面发送命令。这款工具让测试、信息传输和服务器通信自动化变得简单。cURL 还可以通过代理服务器工作:它将请求路由到指定的代理地址,在访问受限网络时实现安全连接和身份验证。

cURL 命令示例

以下是可以直接复制并调整的常用 cURL 命令:

任务

命令

发送基本的 GET 请求

curl https://api.example.com/data

发送带数据的 POST 请求

curl -d "user=test&id=1" https://api.example.com

查看响应头和正文

curl -i https://api.example.com/data

将响应保存到文件

curl -o result.json https://api.example.com/data

跟随重定向

curl -L https://example.com

发送带身份验证的请求

curl -u user:pass https://api.example.com

详细调试请求

curl -v https://api.example.com

当您需要从其他位置或 IP 进行测试时,还可以使用 cURL 发送 GET 请求,或通过代理路由 cURL。

cURL 与 wget 对比

简而言之:需要与 API 交互或检查响应时,请选择 cURL;主要目标是批量下载文件时,请选择 wget。

cURL 和 wget 都是用于传输数据的命令行工具,但满足的需求略有不同。cURL 围绕发送请求和读取响应而设计,因此是 API 测试、自定义请求头和身份验证的首选。wget 则围绕文件下载而设计,可以跟随链接下载整个网站,因此更擅长递归下载。

常见问题

cURL 是什么的缩写?

cURL 是“Client URL”(客户端 URL)的缩写。它是一个开源的命令行工具和库(libcurl),用于向 URL 传输数据或从 URL 获取数据。

cURL 命令有什么用途?

它用于通过网络发送和接收数据,例如测试 API、下载文件、发送 HTTP 请求、检查服务器响应,以及在脚本中自动化这些任务。

cURL 可以免费使用吗?

可以。cURL 免费且开源,大多数 macOS 和 Linux 系统以及新版 Windows 都已预装。

curl -k 有什么作用?

-k 选项让 cURL 即使在无法验证服务器 SSL 证书的情况下也能连接该服务器。它便于本地测试,但由于会跳过安全检查,应避免在生产环境中使用。

curl -s 有什么作用?

-s(静默)选项会隐藏进度条和错误消息,让 cURL 只打印响应。它常用于脚本中,以保持输出简洁。

如何运行 cURL 命令?

打开终端(Windows 上为命令提示符或 PowerShell,macOS 和 Linux 上为 Terminal),输入 curl 命令并按 Enter 键。cURL 会直接在终端中打印结果。

有任何问题吗?