HTTPRequest envoi d'une variable unique en JSON

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

Quel est le message d’erreur (le cas échéant) ? Mauvaise requête - veuillez vérifier vos paramètres

Veuillez partager votre flux de travail

{
“nodes”: [
{
“parameters”: {
“method”: “POST”,
“url”: “http://host.docker.internal:8082/api/assistant/intent”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “Content-Type”,
“value”: “application/json”
},
{
“name”: “Accept”,
“value”: “application/json”
}
]
},
“sendBody”: true,
“contentType”: “raw”,
“body”: “={{ $json.cleanOutput }}”,
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.4,
“position”: [
240,
-112
],
“id”: “bc555ae5-8565-4c9b-b871-4d3f4a20899b”,
“name”: “HTTP Request”
}
],
“connections”: {},
“pinData”: {},
“meta”: {
“templateCredsSetupCompleted”: true,
“instanceId”: “02f1001f8f2d972f69be23b2f2dcfdcc65885dd6f6ff6d04c911329ee6f7f3dd”
}
}

Informations sur votre configuration n8n

  • Version de n8n : latest / local
  • Base de données (par défaut : SQLite) : N/A
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) : default
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : Docker
  • Système d’exploitation : Windows 10

Bonjour @GeoForeman

Modifiez votre champ Body comme ceci :

{
  "intent": "{{ $json.cleanOutput }}"
}

(Remplacez "intent" par le nom de clé réel requis par votre API).

Salut @GeoForeman Bienvenue !
Le type de contenu raw envoie la valeur littérale de l’expression en tant que corps. Si cleanOutput n’est pas déjà du JSON valide, host.docker.internal:8082 reçoit du texte brut avec un en-tête Content-Type: application/json, et son analyseur le rejette avant que votre logique de point de terminaison s’exécute.
Enrobez la valeur avec JSON.stringify au lieu de taper des guillemets autour de l’expression, car les guillemets manuels échouent dès que cleanOutput contient un guillemet ou une nouvelle ligne :

{{ JSON.stringify({ yourKey: $json.cleanOutput }) }}

Comme il s’agit de votre propre service local, le corps de réponse réel ou le journal du serveur affichera la vraie raison de la validation au lieu du message générique de n8n.

Merci, ça a marché