美文网首页
什么是 cURL,它与 API 有什么关系?

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

作者: 艳阳天不下雨 | 来源:发表于2022-04-18 15:35 被阅读0次

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

    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 头,例如日期、内容类型等

    11.png
    • -v是详情选项

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

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

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

    33.png

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

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

    HTTPie

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

    Postman

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

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

    44.png

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

    55.png

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

    66.png

    VS Code 中的Rest Client客户端

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

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

    77.png

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

    总结和后续步骤

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

    相关文章

      网友评论

          本文标题:什么是 cURL,它与 API 有什么关系?

          本文链接:https://www.haomeiwen.com/subject/hghdertx.html