什么是 cURL,它與 API 有什么關(guān)系?

什么是 cURL,它與 API 有什么關(guān)系?

cURL即clientURL,代表客戶端 URL,是一個命令行工具,開發(fā)人員使用它來與服務(wù)器進(jìn)行數(shù)據(jù)交互。例如:最常見的就是通過cURL向指定服務(wù)器url地址發(fā)送數(shù)據(jù)。cURL 支持多種不同的協(xié)議,包括 HTTP 和 HTTPS,并且可以在不同的操作系統(tǒng)平臺上執(zhí)行。你只需要有一臺帶網(wǎng)絡(luò)連接、可以運(yùn)行命令行的終端即可運(yùn)行curl命令。

curl 最基本的用法格式是:curl http://example.com. 即curl命令后跟 URL,它將返回example.com的html源代碼。

curl有什么用途?

  • 它具有高度的可移植性,可以兼容幾乎所有操作系統(tǒng)和連接設(shè)備。
  • 非常方便用來測試終端設(shè)備以檢查它們是否正常工作。
  • 它可以提供詳細(xì)的調(diào)試信息,例如提供已發(fā)送/接收的數(shù)據(jù)的詳細(xì)信息。

發(fā)送 API 請求

我們可以使用 curl 發(fā)送 API 請求。每個請求通常由四個主要部分組成:

  • 一個端點(diǎn),它是我們發(fā)送請求的url地址。

  • HTTP方法。最常用的方法是 GET、POST、PUT 和 DELETE。

    • GET用于從服務(wù)器檢索資源。這可以是文件、數(shù)據(jù)或圖像。

    • POST用于向服務(wù)器發(fā)送數(shù)據(jù)。

    • PUT可用于創(chuàng)建或更新資源。這可用于創(chuàng)建或更新數(shù)據(jù)庫中的記錄或文件的內(nèi)容。

    • DELETE用于刪除資源,例如數(shù)據(jù)庫記錄。

  • Headers,其中包含有關(guān)請求的元數(shù)據(jù),例如內(nèi)容類型、用戶代理等。

  • Body,它是消息體,包含我們要發(fā)送的數(shù)據(jù)。通常,與 POST 和 PUT 方法一起使用。

curl 命令選項(xiàng)

有超過兩百種curl選項(xiàng)。您可以通過在命令行執(zhí)行`curl -h來查看幫助文檔。最常用的命令選項(xiàng)包括:

  • -I僅返回 HTTPS Header頭

    curl --request GET 'https://api.nasa.gov/planetary/apod?api_key=<myapikey>&date=2020-01-01' -I

    此命令將返回 headers 頭,例如日期、內(nèi)容類型等

11.png
  • -v是詳情選項(xiàng)

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

    此命令將顯示運(yùn)行 curl 命令時發(fā)生的所有細(xì)節(jié),包括連接信息、headers頭以及返回的所有數(shù)據(jù)。在這里,我們還獲得了請求返回的圖像的描述以及圖像 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 命令結(jié)合使用

您可以將其它命令的輸出用作 curl 命令的輸入,或者反過來。

例如,您可以使用 curl 和 grep 查看網(wǎng)頁是否包含特定文本。

下面是一個使用 curl 請求 NASA API ,并利用python3從請求返回的數(shù)據(jù)中提取圖像鏈接,并將其顯示在預(yù)覽程序中的示例:

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 發(fā)出 GET 請求,這將返回 json 數(shù)據(jù),我們在一個 Python 腳本片段中從返回的json數(shù)據(jù)中提取圖像的 url。然后我們使用 curl 命令獲取圖像并使用 Mac 上的 Preview 圖片預(yù)覽程序打開它。

33.png

進(jìn)行 API 調(diào)用的其它有用工具

您不必非要使用命令行curl來發(fā)出 API 請求。您也可以使用其它多種不同的工具來進(jìn)行 API 交互,例如 HTTPie、Postman 和 Rest Client。

HTTPie

HTTPie 是一個命令行 HTTP 客戶端,對用戶友好的操作界面是它的一大特點(diǎn)。你可以直接下載其在線版本,非常整潔。

Postman

Postman是一個基于 UI 的客戶端,用于與 API 開發(fā)相關(guān)的所有事情,它可以說是最受歡迎的客戶端之一。

您可以在 Postman 中生成和執(zhí)行curl命令。要生成curl命令,可以輸入請求 的URL地址 和請求參數(shù),然后點(diǎn)擊右側(cè)的代碼選項(xiàng):

44.png

將顯示一個框, 選擇curl就可以查看生成的curl命令。

55.png

Postman 為您提供了您已構(gòu)建的所有請求的歷史記錄,甚至對它們按照日期進(jìn)行了標(biāo)記。

66.png

VS Code 中的Rest Client客戶端

Rest Client for VS Code 可能是我最喜歡的執(zhí)行curl命令的工具之一。它是輕量級的,并且有很好的語法高亮顯示。這是一個非常有用的vs code 插件,方便你在 VS Code 中快速執(zhí)行一些curl請求。

您只需輸入您的 curl 命令,上面就會出現(xiàn)“發(fā)送請求”選項(xiàng)。

77.png

單擊發(fā)送請求后,將打開另一個選項(xiàng)卡,其中包含響應(yīng)。

總結(jié)和后續(xù)步驟

本文中介紹了基本curl命令及其最有用的選項(xiàng)。我們還介紹了可幫助您開始使用 cURL 的工具軟件?,F(xiàn)在您可以開始使用 cURL 來測試您的端點(diǎn)并對您的應(yīng)用程序進(jìn)行故障排除。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容