Parcourir la source

fix: set method to POST when body exists (#14523) (#14524)

Jiakaic il y a 1 mois
Parent
commit
be18b103b7

+ 6 - 1
web/app/components/workflow/nodes/http/components/curl-panel.tsx

@@ -22,13 +22,14 @@ const parseCurl = (curlCommand: string): { node: HttpNodeType | null; error: str
   const node: Partial<HttpNodeType> = {
     title: 'HTTP Request',
     desc: 'Imported from cURL',
-    method: Method.get,
+    method: undefined,
     url: '',
     headers: '',
     params: '',
     body: { type: BodyType.none, data: '' },
   }
   const args = curlCommand.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g) || []
+  let hasData = false
 
   for (let i = 1; i < args.length; i++) {
     const arg = args[i].replace(/^['"]|['"]$/g, '')
@@ -38,6 +39,7 @@ const parseCurl = (curlCommand: string): { node: HttpNodeType | null; error: str
         if (i + 1 >= args.length)
           return { node: null, error: 'Missing HTTP method after -X or --request.' }
         node.method = (args[++i].replace(/^['"]|['"]$/g, '') as Method) || Method.get
+        hasData = true
         break
       case '-H':
       case '--header':
@@ -89,6 +91,9 @@ const parseCurl = (curlCommand: string): { node: HttpNodeType | null; error: str
     }
   }
 
+  // Determine final method
+  node.method = node.method || (hasData ? Method.post : Method.get)
+
   if (!node.url)
     return { node: null, error: 'Missing URL or url not start with http.' }