什么是 cURL 命令?
cURL 是一款用于从 URL 传输数据的命令行工具。它还支持多种网络协议,帮助开发人员测试和自动化信息交换,并调试网络连接。无论是传输文件、在命令行中调用 HTTP 接口,还是确认响应是否符合要求,cURL 都是开发人员和系统管理员可以使用的强大工具。
什么是 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 之前。以下是开发人员最常用的选项。
|
选项 |
作用 |
示例 |
|---|---|---|
|
|
在输出中包含响应头和正文 |
|
|
|
在请求正文中发送数据(默认会将请求变为 POST) |
|
|
|
设置 HTTP 方法,例如 GET、POST、PUT 或 DELETE |
|
|
|
添加自定义请求头 |
|
|
|
将输出保存到您指定名称的文件中 |
|
|
|
使用远程文件自身的名称保存输出 |
|
|
|
跟随重定向到最终 URL |
|
|
|
传递用户名和密码进行身份验证 |
|
|
|
以静默模式运行,隐藏进度和错误输出 |
|
|
|
启用详细模式,调试完整的请求和响应 |
|
|
|
跳过 SSL 证书检查,允许不安全的连接 |
|
|
|
遇到服务器错误时静默失败,而不是打印错误页面 |
|
如需随时查看完整的选项列表,请在终端中运行 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 请求 |
|
|
发送带数据的 POST 请求 |
|
|
查看响应头和正文 |
|
|
将响应保存到文件 |
|
|
跟随重定向 |
|
|
发送带身份验证的请求 |
|
|
详细调试请求 |
|
当您需要从其他位置或 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 会直接在终端中打印结果。
