Web Api 2 [FromBody] Тело запроса на сообщение имеет значение NULL - PullRequest
0 голосов
/ 04 октября 2018

Все,

Во-первых, я знаю, что подобный вопрос задавался множество раз.Во-вторых, у меня нет 50 баллов (?!), Чтобы комментировать любой из них.В-третьих, я не могу использовать «Ответить», чтобы уточнить свой вопрос на этих постах - я получаю предупреждение, что в будущем мне будет запрещено отвечать на любой вопрос.

Поэтому я вынужден задать вопрос еще раз.Я перепробовал все возможные кодировки - все 5 из них, но я всегда получаю NULL для строки Post Body для моего контроллера ниже.Я использую Swagger для тестирования.

public class AmcoController : ApiController
{
    // GET: api/Amco?name=Blah
    public Amco Get(string name)
    {
        return Amco(name);
    }

    // POST: api/Amco
    public void Post([FromBody]string value)
    {
        System.Diagnostics.Debug.WriteLine("Request Body --> " + value);
    }

    // PUT: api/Amco?name=Blah
    public void Patch(string name, [FromBody]string value)
    {
    }

    // DELETE: api/Amco?name=Blah
    public void Delete(String name)
    {
    }
}

Get отлично работает.Не уверен, что происходит.Цените, если кто-то может скопировать / вставить и протестировать и сказать мне.Использование VS 2017

1 Ответ

0 голосов
/ 04 октября 2018

Я не знаю точно, почему сваггер не получает ни единого строкового значения из тела, но вы можете сделать следующее решение:

enter image description here

Измените свой код, чтобы он принимал ваш объект Amco (я думаю, что это также обычный случай для пост-запроса).

После этого пользовательский интерфейс swagger должен выглядеть так, и запрос работает нормально.

enter image description here

Надеюсь, это поможет, удачного кодирования!

...