Использование 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
Другие вопросы по тегам