2015-03-08 3 views
2

Мне передали спецификацию, которая просит использовать запрос HttpPost и получать назад данные - глядя из спецификации, как если бы это данные формы.Как вернуть данные из HttpPost в WebApi

Моя текущая реализация WebApi не возвращает никаких данных из запроса HttpPost, только HttpResponse.OK (200) и местоположения для перехода к.

Я пробовал очень простой форматировщик, но это возвращает XML:

var baseResponse = new BaseResponse() { Something = "Fred" }; 
HttpResponseMessage response = this.Request.CreateResponse<BaseResponse>(HttpStatusCode.OK, baseResponse); 
return response; 

и если добавить "application/x-www-form-urlencoded" к методу, то я получаю обратно сообщение об ошибке:

Could not find a formatter matching the media type 'application/x-www-form-urlencoded'

Документ sped показывает пары Key/Value ..., чтобы я мог либо генерировать их как строку, либо реализовать собственный форматировщик?

e.g. 
Header = blah blah 200 OK 
Data = Something=Fred&SomethingElse=NotFred&AnotherThing=Banana 

Однако существует ли более простой способ достичь этого?

ответ

0

На веб-сайте ASP.NET MVC ваш метод контроллера, обрабатывающий сообщение, вернет ActionResult. ActionResult может быть JsonResult, который может иметь именованные параметры.

В WebAPI вы можете сделать что-то подобное с помощью implementing IHttpActionResult для эмуляции ActionResult.

+0

Я могу вернуть Json (и форматировать как xml или json), но это не то, что спецификация, которую мне дали, показывает :(Как и в Q выше, спецификация (из агентства govt) показывает это как данные формы?! ?! – BlueChippy