Open AlexNeAuto opened 2 months ago
Hi! I confirmed this bug. Also I can add another failed use case.
curl -X POST 'http://example.com:30101/api?external_postprocessing=true' -F 'images=@"/C:/test2.png"' -F 'metadata="{\"application\": \"app\", \"sessionId\": \"559b9fad-5dd2-4bd8-a071-6f07b7bbb7b3\"}";type=application/json'
Parameter metadata
is not imported as json object, because not to checked type
args.
@shipko is there will be any actions from the team about this issue?
We'll get this issue fixed in the next immediate release candidate. Could you subscribe to this issue thread to get notified once the fix is live?
Meanwhile, if anyone would like to try this, feel free to open up a PR.
@liyasthomas
I want to try fix this issue. But when I started a solving the problem I noticed that the problem lies in the yargs-parser/browser
library.
After parse @AlexNeAuto curl command I get
"{ \"API_KEY\": \"api_key\", \"API_SECRET\": \"secret\", \"Device\": {\"id\": \"1234567890\"} ,\"messageIds\": [\"message_1234567890\"], \"action\": \"accept\", \"raw\": \"{
value of d
parameter.
Also we have another failed curl command:
curl -X POST 'http://example.com:30101/api?external_postprocessing=true' -F 'images=@"/C:/test2.png"' -F 'metadata="{\"application\": \"app\", \"sessionId\": \"559b9fad-5dd2-4bd8-a071-6f07b7bbb7b3\"}";type=application/json'
And another issue https://github.com/hoppscotch/hoppscotch/issues/3901
I think this library is not suitable for us. A curl contains a lot of arguments with subtle logic, you can't just parse the arguments here.
Maybe we should start looking for an alternative library?
Is there an existing issue for this?
Current behavior
When i try to import cUrl with escape symbols
curl -X POST 'https://example.com' -H "User-Agent: loadmill/v9.92.0" -H "content-type: application/json" -d "{ \"API_KEY\": \"api_key\", \"API_SECRET\": \"secret\", \"Device\": {\"id\": \"1234567890\"} ,\"messageIds\": [\"message_1234567890\"], \"action\": \"accept\", \"raw\": \"{ \\\"test\\\": \\\"test\\\"}\" }"
i've doesn't get any error message, but if i coversafeParseJSOn
function from ImportCurl component by try catch the error message isI guess the problem is somewhere in FE side, it's serialized string again and i got something like this:
"curl -X POST 'https://example.com' -H \"User-Agent: loadmill/v9.92.0\" -H \"content-type: application/json\" -d \"{ \\\"API_KEY\\\": \\\"api_key\\\", \\\"API_SECRET\\\": \\\"secret\\\", \\\"Device\\\": {\\\"id\\\": \\\"1234567890\\\"} ,\\\"messageIds\\\": [\\\"message_1234567890\\\"], \\\"action\\\": \\\"accept\\\", \\\"raw\\\": \\\"{ \\\\\\\"test\\\\\\\": \\\\\\\"test\\\\\\\"}\\\" }\""
Steps to reproduce
Import cUrl
curl -X POST 'https://example.com' -H "User-Agent: loadmill/v9.92.0" -H "content-type: application/json" -d "{ \"API_KEY\": \"api_key\", \"API_SECRET\": \"secret\", \"Device\": {\"id\": \"1234567890\"} ,\"messageIds\": [\"message_1234567890\"], \"action\": \"accept\", \"raw\": \"{ \\\"test\\\": \\\"test\\\"}\" }"
Environment
Production
Version
Self-hosted