cURL即clientURL,代表客户端 URL,是一个命令行工具,开发人员使用它来与服务器进行数据交互。例如:最常见的就是通过cURL向指定服务器url地址发送数据。cURL 支持多种不同的协议,包括 HTTP 和 HTTPS,并且可以在不同的操作系统平台上执行。你只需要有一台带网络连接、可以运行命令行的终端即可运行curl命令。
curl 最基本的用法格式是:curl http://example.com
. 即curl命令后跟 URL,它将返回
example.com的html源代码。
curl有什么用途?
- 它具有高度的可移植性,可以兼容几乎所有操作系统和连接设备。
- 非常方便用来测试终端设备以检查它们是否正常工作。
- 它可以提供详细的调试信息,例如提供已发送/接收的数据的详细信息。
发送 API 请求
我们可以使用 curl 发送 API 请求。每个请求通常由四个主要部分组成:
- 一个端点,它是我们发送请求的url地址。
HTTP方法。最常用的方法是 GET、POST、PUT 和 DELETE。
- GET用于从服务器检索资源。这可以是文件、数据或图像。
- POST用于向服务器发送数据。
- PUT可用于创建或更新资源。这可用于创建或更新数据库中的记录或文件的内容。
- DELETE用于删除资源,例如数据库记录。
- Headers,其中包含有关请求的元数据,例如内容类型、用户代理等。
- Body,它是消息体,包含我们要发送的数据。通常,与 POST 和 PUT 方法一起使用。
curl 命令选项
有超过两百种curl选项。您可以通过在命令行执行`curl -h来查看帮助文档。最常用的命令选项包括:
-I
仅返回 HTTPS Header头curl --request GET 'https://api.nasa.gov/planetary/apod?api_key=
&date=2020-01-01' -I 此命令将返回 headers 头,例如日期、内容类型等
-v
是详情选项curl --request GET 'https://api.nasa.gov/planetary/apod?api_key=$NASA_API_KEY&date=2020-01-01' -v
此命令将显示运行 curl 命令时发生的所有细节,包括连接信息、headers头以及返回的所有数据。在这里,我们还获得了请求返回的图像的描述以及图像 url。
-o
将输出存储在文件中curl --request GET 'https://api.nasa.gov/planetary/apod?api_key=$NASA_API_KEY&date=2020-01-01' --output curloutput
将 curl 与其他 CLI 命令结合使用
您可以将其它命令的输出用作 curl 命令的输入,或者反过来。
例如,您可以使用 curl 和 grep 查看网页是否包含特定文本。
下面是一个使用 curl 请求 NASA API ,并利用python3从请求返回的数据中提取图像链接,并将其显示在预览程序中的示例:
curl --request GET "https://api.nasa.gov/planetary/apod?api_key=$NASA_API_KEY&date=2020-01-01" -s | python3 -c "import sys, json; print(json.load(sys.stdin)['url'])" | xargs curl -o NASApicture.jpg && open -a Preview NASApicture.jpg
在这个例子中,我们使用 curl 向 Nasa API 发出 GET 请求,这将返回 json 数据,我们在一个 Python 脚本片段中从返回的json数据中提取图像的 url。然后我们使用 curl 命令获取图像并使用 Mac 上的 Preview 图片预览程序打开它。
进行 API 调用的其它有用工具
您不必非要使用命令行curl
来发出 API 请求。您也可以使用其它多种不同的工具来进行 API 交互,例如 HTTPie、Postman 和 Rest Client。
HTTPie
HTTPie 是一个命令行 HTTP 客户端,对用户友好的操作界面是它的一大特点。你可以直接下载其在线版本,非常整洁。
Postman
Postman是一个基于 UI 的客户端,用于与 API 开发相关的所有事情,它可以说是最受欢迎的客户端之一。
您可以在 Postman 中生成和执行curl
命令。要生成curl
命令,可以输入请求 的URL地址 和请求参数,然后点击右侧的代码选项:
将显示一个框, 选择curl
就可以查看生成的curl
命令。
Postman 为您提供了您已构建的所有请求的历史记录,甚至对它们按照日期进行了标记。
VS Code 中的Rest Client客户端
Rest Client for VS Code 可能是我最喜欢的执行curl
命令的工具之一。它是轻量级的,并且有很好的语法高亮显示。这是一个非常有用的vs code 插件,方便你在 VS Code 中快速执行一些curl请求。
您只需输入您的 curl 命令,上面就会出现“发送请求”选项。
单击发送请求后,将打开另一个选项卡,其中包含响应。
总结和后续步骤
本文中介绍了基本curl
命令及其最有用的选项。我们还介绍了可帮助您开始使用 cURL 的工具软件。现在您可以开始使用 cURL 来测试您的端点并对您的应用程序进行故障排除。