Мне просто не повезло, что я отправил значение формы в кодировке url от почтальона в web-интерфейс 2.1 vanilla asp.net core, созданный с помощью file-> new project.Я ничего не делаю с этим, но все же новая функция проверки модели, кажется, срабатывает и возвращает почтальону 400 плохих запросов.Может кто-нибудь сказать мне, что я делаю не так?
Действие контроллера:
// POST api/values
[HttpPost]
public void Post([FromBody] string value)
{
}
Необработанный запрос (как видно из fiddler):
POST http://localhost:60843/api/values HTTP/1.1
Content-Type: application/x-www-form-urlencoded
cache-control: no-cache
Postman-Token: a791eee7-63ff-4106-926f-2s67a8dcf37f
User-Agent: PostmanRuntime/7.3.0
Accept: */*
Host: localhost:60843
accept-encoding: gzip, deflate
content-length: 7
Connection: keep-alive
value=test
Необработанный ответ:
HTTP/1.1 400 Bad Request
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Server: Kestrel
X-SourceFiles: =?UTF-8?BQzpcUmVwb3NcVGVzdGJlZFxNb2RlbEJpbmRpbmdcTW9kZWxCaW5kaW5nXGFwaVx2YWx1ZXM=?=
X-Powered-By: ASP.NET
Date: Thu, 25 Oct 2018 15:23:49 GMT
21
{"":["The input was not valid."]}
0
Еще раз отметим, что это шаблон по умолчанию для веб-API asp.net в Visual Studio 2017.
Интересным фактом является то, что если я добавлю Swashbuckle и перейду к конечной точке пользовательского интерфейса Swaggerи использовать встроенную функцию «попробуй», она также выдает ошибку «из коробки».
Я получил это для работы со сложным типом и телом json, но не могу получитьпростой тип для работы, и я пробовал все виды различных типов контента.