WCF Rest POST方法接受JSON和XML

时间:2012-08-26 06:53:12

标签: c# .net post wcf-rest

寻找一些在WCF restful服务中创建一个post方法的方法,它可以同时接受xml和json。我可以看到Get方法可以根据请求标头自动返回json / xml。

我能想到的一个解决方案是:

  1. 将帖子数据作为“Stream”获取并将其读取为字符串。
  2. 检查请求标头并将其反序列化为json或xml。
  3. 累计设置OutgoingResponse格式并返回响应。
  4. 我能够做到#1但却陷入#2和#3。

1 个答案:

答案 0 :(得分:1)

微软已经为你做了这个,不要重新发明轮子。

public class DataController : ApiController
{
    public void Post(DataModel model)
    {
        // Whether the body contains XML, JSON, or Url-form-encoded it will be deserialized
        // into the model object which you can then interact with in a strongly-typed manner
    }
}

public class DataModel
{
    public string PropertyA { get; set; }
    public string PropertyB { get; set; }
}

您可以免费下载ASP.NET MVC4,其中包括新的Web API。 http://www.asp.net/mvc/mvc4。这基本上是WCF Web API的最终产品,不再受支持。除非您已经使用原始Web API编写了如此多的代码,否则进行切换是不切实际的,从长远来看,这将为您节省大量时间。否则,您将遇到一个Beta产品,该产品存在永远无法修复的错误。