Я использую web.api 2.2, клиент посылает данные в этом стиле:Web.Api принимает форму параметра значение
data={"kind": "Conversation", "tags": [], "items": [{"body": "hi there", "timestamp": "1445958749.284379", "kind": "MessageToOperator", "nickname": "United Kingdom (Rickmansworth) #5043", "visitor_nickname": "United Kingdom (Rickmansworth) #5043"}, {"body": "my name is amel and i am testing olark", "timestamp": "1445958753.320339", "kind": "MessageToOperator", "nickname": "United Kingdom (Rickmansworth) #5043", "visitor_nickname": "United Kingdom (Rickmansworth) #5043"}, {"body": "hi amel i am jessica", "timestamp": "1445958763.486881", "kind": "MessageToVisitor", "nickname": "Jessica Wood ", "operatorId": "744399"}, {"body": "ok im back", "timestamp": "1445959002.452643", "kind": "MessageToOperator", "nickname": "United Kingdom (Rickmansworth) #5043", "visitor_nickname": "United Kingdom (Rickmansworth) #5043"}, {"body": "hello there", "timestamp": "1445959059.642775", "kind": "MessageToVisitor", "nickname": "Jessica Wood ", "operatorId": "744399"}, {"body": "i ma here", "timestamp": "1445959066.829973", "kind": "MessageToOperator", "nickname": "United Kingdom (Rickmansworth) #5043", "visitor_nickname": "United Kingdom (Rickmansworth) #5043"}, {"body": "test", "timestamp": "1445959885.173931", "kind": "MessageToOperator", "nickname": "United Kingdom (Rickmansworth) #5043", "visitor_nickname": "United Kingdom (Rickmansworth) #5043"}, {"body": "hi there", "timestamp": "1445959894.323173", "kind": "MessageToVisitor", "nickname": "Jessica Wood ", "operatorId": "744399"}, {"body": "how are you doing", "timestamp": "1445959900.186131", "kind": "MessageToVisitor", "nickname": "Jessica Wood ", "operatorId": "744399"}, {"body": "Testing olark", "timestamp": "1445960829.592606", "kind": "MessageToOperator", "nickname": "United Kingdom (Rickmansworth)
#5043", "visitor_nickname": "United Kingdom (Rickmansworth) #5043"}, {"body": "Hello there", "timestamp": "1445960834.471775", "kind": "MessageToVisitor", "nickname": "Jessica Wood ", "operatorId": "744399"}], "operators": {"744399": {"username": "winlotto.com", "emailAddress": "[email protected]", "kind": "Operator", "nickname": "Jessica Wood ", "id": "744399"}}, "visitor": {"city": "Rickmansworth", "kind": "Visitor", "conversationBeginPage": "http://www.winnlotto.com/", "countryCode": "GB", "ip": "195.110.84.183", "chat_feedback": {}, "operatingSystem": "Windows", "emailAddress": "", "country": "United Kingdom", "organization": "COLT Technology Services Group Limited", "fullName": "United Kingdom (Rickmansworth) #5043", "id": "tTOFv5oa0muGA16s7281C5P1GOAsjJA4", "browser": "Firefox 41.0"}, "isLead": "true", "id": "rWpAfF48ITi4y6DU7281C2R1GP0FHVJ3"}
Смотреть это данные = в начале. Они отправляют json в качестве параметра данных в значение, что смешно, но я не знаю, как принять его в web.api-контроллере. Я попробовал строковые данные [FromBody], он, похоже, не работает.
Это мое действие, которое принимает это:
[Route("Index")]
[HttpPost]
public IHttpActionResult Index([FromBody] string data)
{
var body = string.Empty;
using (var reader = new StreamReader(Request.Content.ReadAsStreamAsync().Result))
{
reader.BaseStream.Seek(0, SeekOrigin.Begin);
body = reader.ReadToEnd();
}
return Ok();
}
Edit: То, что я это упаковали модель с полем данных строки и возвращает JSON в строке:
public class ServiceModel
{
public string data { get; set; }
}
Является ли это правильный путь для получения параметров формы?
делает запрос достигнет сервера? или нет ? проверьте с помощью скрипача –
Хотя вы не упомянули, что вы получаете в «тело» с чтением Стрим? –
он достигает сервера. поэтому они в основном не отправляют json, а форму. поэтому на данный момент я создал модель с 3 –