2
我有以下Asp.Net的Web API V2控制器 - 就像一個基本的例子:的WebAPI接受Json的問題 - 的Zendesk
[HttpPost]
public IHttpActionResult TestPost([FromBody]string value)
{
l.TestNotify(value, "test");
return Ok();
}
當我通過JSON請求與AA簡單的 「Hello world」 控制器 - 我能夠得到沒有問題的價值。當我使用更復雜的JSON時,value參數返回空。
我用測試程序使用restsharp測試過相同的JSON,它能正常工作。
這裏是要求:
Content-Type application/json; charset=utf-8
Accept-Encoding gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept */*
Content-Length 743
這裏是JSON的摘錄:
{
"ticket": {
"url": "",
"id": "",
"external_id": null,
"FromEmail": "cody",
"via": "Mail",
}
}
我的猜測是,它有什麼要求的差異,但沒有明顯的出現在腦海之間的事。讚賞閱讀請求內容的其他方法或對我對上述http請求的理解的調整。
完美運作。這是爲什麼?我已經有了一個課程,可以在以後對其進行反序列化。我不知道背後的原因是什麼。 –
讓框架做(de)序列化有很多好處。例如,您可以指定'Content-Type:application/xml'標頭,這會使您的Web API接受XML而不是JSON,而無需對代碼進行任何更改。它還可以幫助您編寫易於重構的測試,您只需重命名該屬性,並且所有引用都將在整個解決方案中重命名。 –