什么是 cURL,它与 API 有什么关系?

cURL 是一个命令行工具,用于与服务器进行数据交互,支持多种协议。它常用于发送 API 请求,如 GET、POST、PUT 和 DELETE。文章介绍了cURL的用途、命令选项,以及如何与其他CLI命令结合使用。还提到了其他API调用工具,如 HTTPie、Postman 和 VS Code 的 Rest Client 客户端。

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=<myapikey>&date=2020-01-01' -I

    此命令将返回 headers 头,例如日期、内容类型等

    仅显示 HTTPS 标头的 curl 命令结果的屏幕截图

  • -v是详情选项

    curl --request GET 'https://api.nasa.gov/planetary/apod?api_key=$NASA_API_KEY&date=2020-01-01' -v

    此命令将显示运行 curl 命令时发生的所有细节,包括连接信息、headers头以及返回的所有数据。在这里,我们还获得了请求返回的图像的描述以及图像 url。

    仅显示 HTTPS 标头的 curl 命令结果的屏幕截图

  • -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 图片预览程序打开它。

屏幕截图显示从 curl 和 python 命令组合返回的图像

进行 API 调用的其它有用工具

您不必非要使用命令行curl来发出 API 请求。您也可以使用其它多种不同的工具来进行 API 交互,例如 HTTPie、Postman 和 Rest Client。

HTTPie

HTTPie 是一个命令行 HTTP 客户端,对用户友好的操作界面是它的一大特点。你可以直接下载其在线版本,非常整洁。

Postman

Postman是一个基于 UI 的客户端,用于与 API 开发相关的所有事情,它可以说是最受欢迎的客户端之一。

您可以在 Postman 中生成和执行curl命令。要生成curl命令,可以输入请求 的URL地址 和请求参数,然后点击右侧的代码选项:

显示突出显示 Postman URL 和代码选项的屏幕截图

将显示一个框, 选择curl就可以查看生成的curl命令。

显示 Postman 中生成的 curl 命令的屏幕截图

Postman 为您提供了您已构建的所有请求的历史记录,甚至对它们按照日期进行了标记。

显示邮递员请求历史记录的屏幕截图

VS Code 中的Rest Client客户端

Rest Client for VS Code 可能是我最喜欢的执行curl命令的工具之一。它是轻量级的,并且有很好的语法高亮显示。这是一个非常有用的vs code 插件,方便你在 VS Code 中快速执行一些curl请求。

您只需输入您的 curl 命令,上面就会出现“发送请求”选项。

VS Code 中 curl 命令请求的屏幕截图

单击发送请求后,将打开另一个选项卡,其中包含响应。

总结和后续步骤

本文中介绍了基本curl命令及其最有用的选项。我们还介绍了可帮助您开始使用 cURL 的工具软件。现在您可以开始使用 cURL 来测试您的端点并对您的应用程序进行故障排除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

walkingmanc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值