2
I次Asp.Net Web APIをv2のコントローラを持っている - ちょうど基本的な例として:WEBAPI受け入れJSONの問題 - ZenDesk
[HttpPost]
public IHttpActionResult TestPost([FromBody]string value)
{
l.TestNotify(value, "test");
return Ok();
}
私はAAシンプルな "Hello World" を持つコントローラにJSON要求を渡すと - 私は値を問題なく得ることができる。より複雑な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リクエストに関する私の理解の調整が認められます。
これは完全に機能しました。何故ですか?私はすでにそれを後でデシリアライズするようにビルドされたクラスを持っていました。その違いの背景には何があるのだろうか。 –
フレームワークに(デ)シリアライゼーションをさせることには多くの利点があります。例えば、あなたのコードに必要な変更をJSONの代わりにWeb APIがXMLを受け入れるようにする 'Content-Type:application/xml'ヘッダを指定することができます。また、リファクタリングの容易なテストを書くのに役立ちます。プロパティの名前を変更するだけで、すべての参照がソリューション全体で名前が変更されます。 –