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 头,例如日期、内容类型等
-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 来测试您的端点并对您的应用程序进行故障排除。