处理.NET中发布的JSON值

时间:2017-01-05 00:15:03

标签: c# json asp.net-mvc asp.net-web-api

所有

我正在开发一个侦听具有JSON有效负载的帖子的Web服务。 我在Visual Studio 2015中创建了一个Web应用程序项目,它提供了一个存根的API控制器。当我向POST处理程序发送测试时,即使我发送JSON有效负载,控制器中接收的值也为空。

我做错了什么,这里?

我怀疑我需要某种类型的绑定,在我的POST命名为" value",但由于我收到原始JSON有效负载,我无法真正影响绑定。

我发送的有效负载 enter image description here

在" value"中返回null参数值 enter image description here

2 个答案:

答案 0 :(得分:1)

创建一个模型来存储正在发送的数据。

override func viewDidLoad() {
    super.ViewDidLoad() 
    myImage.layer.shadowColor = UIColor.black.cgColor
    myImage.layer.shadowOpacity = 1 
    myImage.layer.shadowOffset = CGSize.zero
    myImage.layer.shadowRadius = 10
    myImage.layer.shadowPath = UIBezierPath(rect: myImage.bounds).cgPath
    myImage.layer.shouldRasterize = false
    myImage.layer.cornerRadius = 10
    myImage.clipsToBounds = true
}

更新控制器操作以接受有效负载

public class Payload {
    public string type { get; set;}
    public string id { get; set;}
    public long creates_at { get; set;}
    public long updated_at { get; set;}
    public string service_type { get; set;}
    public string[] topics { get; set;}
    public string url { get; set;}
    public bool active { get; set;}
    public string hub_secret { get; set;}
}

这也假设您使用默认的基于约定的路线temaplate public class ValuesController : ApiController { //POST api/values public void Post([FromBody] Payload value) {...} }

答案 1 :(得分:0)

你需要在你的行动/方法中加入[System.Web.Http.HttpPost]属性