Использование cURL для публикации данных
Я пытаюсь опубликовать на 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
3 ответа
Следующие работы:
curl --data '' http://localhost:49301/api/donut/run?Task=bake
Параметр --data '' 'кажется важным, поэтому curl выполняет POST, а не 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