「HTTP 請求」節點在「動作」這一組。它會呼叫一個外部的 HTTP API,把回應變成資料,交給下一個節點。
每一筆資料呼叫一次
進到這個節點的每一筆資料,都會各發出一次請求:進來 100 筆,就呼叫 100 次。在工作流執行時,沒有資料進來的話,這個節點會被跳過,不會發出請求。只有在畫布上單獨執行這個節點、前面還沒有資料時,它才會發出一次請求。
「網址」、「查詢參數」、「標頭」與要送出的內容都可以用算式,所以每一次呼叫可以用不同的網址或內容。
欄位
- HTTP 方法 (Method):GET、POST、PUT、PATCH、DELETE 或 HEAD,預設是 GET。
- 網址:要呼叫的網址,一定要填,例如
https://example.com/api/orders。沒有填時,節點會失敗,訊息是「HTTP 請求節點沒有填網址。」。 - 憑證:對方要求身分驗證時才選,請看下面的憑證。
- 傳送查詢參數:打開後,在「查詢參數」填名稱與值,它們會加在網址後面。
- 傳送標頭:打開後,在「標頭」填要送出的標頭。
- 傳送請求 Body:打開後,選「內容類型 (Content-Type)」:
- 「JSON」:填「JSON Body」。內容不是合法的 JSON 時,節點會失敗,訊息是「JSON 內容不是合法的 JSON。」。
- 「表單 (form-urlencoded)」:填「表單欄位」。
- 「原始內容 (Raw)」:填「原始 Body」,內容照原樣送出。
- 逾時秒數:等對方回應最多幾秒。預設 30 秒,可以設 1 到 300 秒。
- 忽略 HTTP 狀態錯誤:預設關閉。關閉時,對方回應 4xx 或 5xx,這個節點就會失敗,訊息像是「呼叫 … 失敗,對方回應 404。」,其中 … 是呼叫的網址,404 會換成對方回應的狀態碼。打開後,4xx 與 5xx 的回應也照常輸出。
- 輸出完整回應:預設關閉,請看下面的輸出。
工作流是由設成「跑完再回傳資料」的 Webhook 啟動時,節點等待的時間,最多只到 Webhook 的時間上限用完為止,請看 Webhook 的回應、狀態碼與上限。
這個節點目前不能用 OAuth2 登入、不能傳送檔案,也不會自動一頁一頁讀取。
憑證
「憑證」只列出開放給這個工作流的憑證裡,下面這三種。選了一個之後,每一次呼叫都會自動加上它的標頭:
| 憑證種類 | 加上的標頭 |
|---|---|
| 基本驗證 | Authorization: Basic …,內容是「帳號:密碼」的 Base64 |
| Bearer Token | Authorization: Bearer …,內容是存好的 Token |
| 標頭驗證 | 你存的「標頭名稱」與「標頭值」 |
沒有選時,顯示「不使用憑證」。郵件與 AI 模型的憑證不會出現在這裡,也不會被加到請求上。一個能選的都沒有時,框下面寫著「還沒有憑證開放給這個工作流。請憑證的擁有者在憑證的「權限」分頁加上它。」
選好的憑證要開放給這個工作流,執行時才會加到請求上:它的「權限」分頁要加上這個工作流,請看工作流用得到哪些憑證。沒有開放時,這個節點會執行失敗,寫著「憑證「名稱」沒有開放給這個工作流。請憑證的擁有者在憑證的「權限」分頁加上這個工作流。」選的是沒有開放給這個工作流的私人憑證時,寫著「節點「…」選的私人憑證沒有開放給這個工作流。請私人憑證的擁有者在憑證的「權限」分頁加上這個工作流。」
選的憑證在清單上找不到時,例如它被刪掉了,或它沒有開放給這個工作流,框下面會寫「這裡找不到選的憑證。」,後面有「清掉」,按了就會清掉。
憑證要先建立好,才能在這裡選,請看憑證:保存 API 金鑰與密碼。
不能呼叫的網址
- 網址只能用 http 或 https。用別的,例如
ftp://,節點會失敗,訊息是「網址只能用 http 或 https,不能用「ftp」。」。網址前面沒有寫https://時,也會收到這個訊息,括號裡寫的是「(沒有)」。 - 不能呼叫網站自己內部網路的位址,例如 localhost、127.0.0.1、私人網段(像 192.168.x.x),或雲端主機的中繼資料位址。網址寫的是主機名稱時,網站會先查它指向哪裡:指向內部位址的,一樣不行;查不到位址的主機名稱,也會被擋下來。訊息是「不允許呼叫內部網址「…」。」,引號裡是網址的主機名稱。
- 網址讀不出主機時,訊息是「看不懂這個網址:「…」。」,引號裡是你填的網址。
- 對方回應轉址時,每一次轉址的目的地都會再檢查一次。
這些限制是網站的設定,使用者不能關掉。
輸出
每一次呼叫變成一筆資料。對方回應的內容是 JSON 時,會讀成資料;不是 JSON 時,保留成文字。
- 「輸出完整回應」關閉時(預設):只輸出回應的內容。內容是一個不是空的物件(例如
{"id": 7})時,它就是這筆資料。其他的內容,例如陣列、文字、數字,或是空物件{},會放在data欄位下,例如{"data": [1, 2, 3]}。 - 「輸出完整回應」打開時:輸出三個欄位:
statusCode(狀態碼)、headers(回應的標頭)與body(回應的內容)。