The following works:
curl --data '' http://localhost:49301/api/donut/run?Task=bake
The parameter "--data ''" seems to be important so curl does a POST and not a GET.
Я пытаюсь опубликовать на localhost с некоторыми параметрами в URL. Все просто отлично работает в Fiddler. Но cURL не позволяет мне сделать это, с сообщением об ошибке ниже.
curl --data "Task = bake" http: // localhost: 49301 / api / donut / run
{"Message": "Не найден ресурс HTTP, который соответствует URI запроса" http: // localhost: 49301 / api / donut / run ".", "MessageDetail": "На контроллере" Donut "не было найдено никакого действия, которое соответствует запросу. "}
В Fiddler я составляю запрос следующим образом: POST http: // localhost: 49301 / api / donut / run? Task = bake
The following works:
curl --data '' http://localhost:49301/api/donut/run?Task=bake
The parameter "--data ''" seems to be important so curl does a POST and not a GET.
Хотя технически вы можете выполнять запрос «POST» в fiddler (который я не использовал, но я кое-что знаю об HTTP), мне кажется, что вы на самом деле не публикуете свой запрос, а вы используют "PUT" (предположительно в сочетании с пустым постом).
Я полагаю, что если бы вы использовали curl http: // localhost: 49301 / api / donut / run? Task = bake, это бы работало нормально.
[Запрос PUT помещает параметры как часть URL, вместо этого запрос POST помещает их в заголовок запроса.
Вполне вероятно, что ваше приложение запрограммировано на прием PUTS, но не POSTS.
Использование curl с аргументом --data вызывает curl для POST, но также отправляет аргументы как часть тела запроса, а не как аргументы, передаваемые через URL.
Учитывая, что полученная вами ошибка является ошибкой маршрутизации MVC, утверждающей, что маршрут не может быть разрешен действием, я предполагаю, что целевое действие не настроено для получения его параметров из тела запрос.
Пытаться:
curl -d '' http://localhost:49301/api/donut/run?Task=bake