Команда curl для HttpGet с несколькими аргументами, типа json - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть сетевой контроллер ASP - GET с 4 аргументами (последний ожидает Json)

 [HttpGet]
 [Route("api/Workflow/executeworkflow")]
  public int Executeworkflow(int id, string userName, bool isJson, string overwriteArguments)
  {
  ...

Если я сделаю запрос из браузера в следующей форме, он будет работать нормально http://localhost:1234/api/Workflow/executeworkflow?id=1661&userName=myName&isJson=true&overwriteArguments={"arg1":"bla","arg2":"blabla", "arg3 ":" blablabla "}

Мне нужно запланировать такой запрос и использовать для этого Curl.Но я не могу понять, как передать его в curl

Я попробовал следующий curl.exe -X GET "http://localhost:1234/api/Workflow/executeworkflow?id=1661&userName=myName&isJson=true&overwriteArguments={\"arg1\":\"bla\",\"arg2\":\"blabla\", \" arg3 \ ": \" blablabla \ "}"

он попадает в контроллер, но последний (аргумент Json) как-то разбивается. В режиме отладки функция вызывается дважды, сначала с правильными тремя аргументами, но последний принимается как "\" arg1 \ ": \" bla \"", а затем во второй раз, снова с правильными первыми тремя аргументами и последним "\" arg2 \ ": \" blabla \ "" Что непонятно и еще более запутанно, что его не называют третьим временем ...Поэтому по какой-то причине последний аргумент был разделен.

Просмотр Stackoverwflow Я попытался разделить параметры - передать первые три обычным способом и пройти последним путем с опцией -d, например, curl.exe -X GET "http://localhost:1234/api/Workflow/executeworkflow?id=1661&userName=myName&isJson=true" -d 'overwriteArguments = {"arg1": "bla", "arg2": "blabla", "arg3": "blablabla"}'

В этом случае он даже не идетк этой функции и переходит к функции только с первыми двумя параметрами

Я играл со многими другими вада, но не мог заставить это работать - оценил бы любую помощь!Спасибо, Арбус

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...