Requête HTTP - données de formulaire - comment spécifier le content-type pour un champ

Décrire le problème/l’erreur/la question

J’ai besoin d’exécuter une requête HTTP avec form-data, où pour l’un des champs un type de contenu est spécifié.

Dans Postman, cela ressemble à ce qui suit :

Quand je crée un extrait cUrl à partir de cette requête dans Postman, cela ressemble à ceci :

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

Veuillez noter le type du champ params à la fin.

Quand je crée un workflow simple avec HTTP Request, je ne vois pas où je peux spécifier le type de contenu du champ params :

Quand j’exécute le workflow, j’obtiens une erreur indiquant que le Content-Type est incorrect.

J’ai aussi essayé avec Form-Data - même erreur :

J’ai aussi essayé d’importer le cURL - même erreur.

Ma question est donc : existe-t-il un moyen de spécifier un Content-Type pour un champ spécifique dans une requête form-data ?

Quel est le message d’erreur (le cas échéant) ?

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

Veuillez partager votre workflow

Partagez la sortie retournée par le dernier nœud

Informations sur votre configuration n8n

  • Version n8n : 2.21.7
  • Base de données (par défaut : SQLite) : Postgres
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) : own
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : docker
  • Système d’exploitation : Windows

Salut @Daniil_Dukat

Peux-tu essayer ça ?

  1. Nœud Code : Il crée une propriété binaire appelée data. Il est essentiel qu’il définisse le mimeType à application/json.
  2. Nœud HTTP Request :
    • Type de contenu du corps : Défini sur multipart-form-data.
    • Champ 1 (data) : Un champ de texte standard mappé sur la sortie JSON du nœud Code.
    • Champ 2 (params) : Le parameterType est défini sur formBinaryData et le inputDataFieldName est défini sur data. Cela indique à n8n de prendre l’objet binaire que nous avons créé et de l’envoyer avec son type MIME associé (application/json).

D’accord, je vais essayer maintenant. Merci

Salut @kjooleng - merci beaucoup, ça marche ! :clinking_beer_mugs:

Ravi de vous aider…