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,而无需对代码进行任何更改。它还可以帮助您编写易于重构的测试,您只需重命名该属性,并且所有引用都将在整个解决方案中重命名。 –