Я пишу службу с использованием MVC 4 Web API для получения POST
от стороннего сервиса. Это простой пост с строковым параметром в теле, который выглядит как key=value
.MVC4 API простых типов API API: null
Это в значительной степени контроллер по умолчанию, созданный в Visual Studio:
// POST api/register
public void Post([FromBody]string value)
{
}
Если я выкладываю параметр в теле как key=value
, параметр всегда NULL
, когда она попадает на службу.
POST http://localhost:1750/api/Register HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
Host: localhost:1750
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
value=abcdefg
Если удалить ключ и только вывешиваем =value
то значение проступает.
POST http://localhost:1750/api/Register HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
Host: localhost:1750
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
=abcdefg
Проблема заключается служба третьей стороны размещение key=value
. Как я могу заставить свой сервис работать правильно?
параметр переименования в 'общественной недействительным сообщение ([FromBody] строка ключа)'? – JleruOHeP
Это была одна из первых вещей, которые я пробовал. Неважно, что я называю параметром. – earthling
Я уверен, что вы видели сообщение, в котором у вас есть обходное решение, но для других, следующих за http://stackoverflow.com/questions/11515319/frombody-not-binding-string-parameter, есть некоторые полезные ссылки ... –