HTTP 請求 - 表單資料 - 如何為某個欄位指定 content-type

問題/錯誤/問題的說明

我需要執行一個 HTTP 請求,使用 form-data,其中 1 個欄位需要指定 content type。

在 Postman 中看起來如下

當我從 Postman 中的此請求建立 cUrl 程式碼片段時 - 看起來如下:

curl --location ‘http://someUrl’ \

–form ‘data=“Some sample text about some very important topic”’ \

–form ‘params=“{\“projectId\” : [\“1223\”], \“showMatchingDetails\”:true, \“showMatchingPosition\”: true}”;type=application/json

請注意最後 params 欄位的 type。

因此,當我使用 HTTP Request 建立一個簡單的工作流程時 - 我看不到可以在哪裡為 params 欄位指定 content type:

當我執行工作流程時 - 我得到一個錯誤,說 Content-Type 是錯誤的。

我也嘗試了 Form-Data - 同樣的錯誤:

我也嘗試匯入 cURL - 同樣的錯誤。

所以我的問題是 - 是否有任何方法可以為 form-data 請求中的特定欄位指定 Content-type?

錯誤訊息是什麼(如果有的話)?

500 - “{\“voidResponse\”:{\“success\”:false,\“status\”:500,\“message\”:\“Content-Type ‘application/x-www-form-urlencoded’ is not supported\”,\“resultType\”:\“text/plain\”,\“result\”:null}}”

請分享您的工作流程

分享最後一個節點傳回的輸出

您的 n8n 設定資訊

  • n8n 版本: 2.21.7
  • 資料庫(預設:SQLite): Postgres
  • n8n EXECUTIONS_PROCESS 設定(預設:own, main): own
  • 執行 n8n 的方式(Docker、npm、n8n cloud、desktop app): docker
  • 作業系統: Windows

@Daniil_Dukat

你能試試這個嗎?

  1. 程式碼節點:它建立一個名為 data 的二進位屬性。關鍵是,它將 mimeType 設定為 application/json
  2. HTTP 要求節點
    • 內文內容類型:設定為 multipart-form-data
    • 欄位 1 (data):一個標準文字欄位,對應到程式碼節點的 JSON 輸出。
    • 欄位 2 (params)parameterType 設定為 formBinaryDatainputDataFieldName 設定為 data。這告訴 n8n 取用我們建立的二進位物件,並與其相關聯的 MIME 類型 (application/json) 一起傳送。

好的,現在就試試。謝謝

@kjooleng - 非常感謝,成功了!:clinking_beer_mugs:

很樂意幫忙…