У меня есть очень простой встроенный/запущенный webApi (почти шаблонное приложение, не более того), чтобы следить за обучающим видео. Вызовы GET и DELETE работают нормально, PUT и POST дают ошибку 400. По общему признанию, я очень новичок во всем этом, поэтому я ищу какое-то основное направление, как устранять неполадки. Далее следуют соответствующие снимки экрана, я буду рад предоставить другие по запросу. Заранее спасибо.





вы пытаетесь сделать POST-запрос, в теле которого требуется строковое значение.
Перейдите в раздел Body запроса почтальона, выберите form-data, после чего добавьте value в качестве имени параметра и This is test string в качестве значения параметра.
Я пытался манипулировать телом и пробовал "none", "form-data", "x-www-form-urlencoded" и т. д., все они по-прежнему возвращают 400. и спасибо за такой быстрый ответ!
вам нужно использовать данные формы, другие не имеют значения.
Мне нужно, чтобы ты попробовал еще одну вещь. Выберите Raw и просто напишите в нем текст. затем отправить его
Пробовали и это, но вот последний тест с использованием Raw: POST /api/values HTTP/1.1 Host: localhost:53091 cache-control: no-cache Postman-Token: b62d712a-d361-434d-808a-88f6688aad3b test- -----WebKitFormBoundary7MA4YWxkTrZu0gW--
Кроме того, стоит отметить, что закомментирование параметра «[FromBody] string value» в коде API позволит пройти вызову, и моя точка останова сработает в методе Post.
Если ваша точка останова попала в отладку, это означает, что вы успешно вызвали свой метод. Однако ваш метод не имеет возвращаемого значения. Поставьте return Created() для тестирования и измените тип возвращаемого значения вашего метода на IActionResult.
Если этот ответ помог вам, пожалуйста, отметьте его как ответ
Давайте продолжить обсуждение в чате.
Я знаю эту очень старую тему, но могу помочь кому-то опубликовать мой ответ. попробуйте обновить атрибут метода [HttpPost("New")] и назовите его http:localhost//api/new.
Моя среда разработки на ядре .net.
Это сводило меня с ума и потеряло 5 часов, и все это не позволяло отправлять запросы ни от вызовов браузера, ни от Почтальона.
Следующие три изменения помогли мне в трех разных сценариях.
Удаление атрибута [ValidateAntiForgeryToken] выше из метода API устранило мою проблему. Это правильный подход?
ОБНОВЛЕНИЕ: разобрался, мне нужно было использовать параметр «Raw» в Postman и указать значение параметра в кавычках, я использовал значение без кавычек или kvp и т. д., которые не могли быть правильно отформатированы как json.