WebApi接受Json问题 - ZenDesk

时间:2017-11-18 10:12:21

标签: asp.net json asp.net-web-api zendesk

我有以下Asp.Net Web Api v2控制器 - 就像一个基本的例子:

    [HttpPost]
    public IHttpActionResult TestPost([FromBody]string value)
    {       
       l.TestNotify(value, "test");     
       return Ok();
    }

当我通过一个简单的" 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请求的理解的调整将是值得赞赏的。

1 个答案:

答案 0 :(得分:1)

不要使用string,而是为输入类型创建一个类。

这就是课程的样子:

public class Ticket
{
    public string url { get; set; }
    public string id { get; set; }
    public object external_id { get; set; }
    public string FromEmail { get; set; }
    public string via { get; set; }
}

public class TicketRoot
{
    public Ticket ticket { get; set; }
}

然后使用控制器中的TicketRoot类型代替string