WCF Rest POST 方法接受 JSON 和 XML
Posted
技术标签:
【中文标题】WCF Rest POST 方法接受 JSON 和 XML【英文标题】:WCF Rest POST method to accept both JSON and XML 【发布时间】:2012-08-21 03:04:18 【问题描述】:正在寻找一种方法来在 WCF RESTful 服务中创建一个可以同时接受 xml 和 json 的 post 方法。我可以看到 Get 方法可以根据请求标头自动返回 json/xml。
我能想到的一个解决方案是:
-
以“Stream”的形式获取发布数据并将其读入字符串。
检查请求头并将其反序列化为 json 或 xml。
相应设置 OutgoingResponse 格式并返回响应。
我能够做到#1,但卡在#2 和#3。
【问题讨论】:
【参考方案1】:Microsoft 已经为您完成了这项工作,不要重新发明***。
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;
您可以免费下载包含新 Web API 的 ASP.NET MVC4。 http://www.asp.net/mvc/mvc4 。这基本上是 WCF Web API 的最终产品,不再受支持。除非您已经使用原始 Web API 编写了太多代码以至于无法进行切换,否则从长远来看,这将为您节省大量时间。否则,您将被困在包含永远无法修复的错误的 Beta 产品中。
【讨论】:
你是对的。 Web API 是正确的方法,因为它是最终产品。现在的努力将在未来节省大量时间。感谢您指出。以上是关于WCF Rest POST 方法接受 JSON 和 XML的主要内容,如果未能解决你的问题,请参考以下文章
在 WCF REST 服务 POST 方法中处理 Json 请求数据
试图让 JQuery Post 与 WCF 通信,但 JSON 数据未被接受
自托管 WCF REST 服务 JSON POST 方法不允许