c# - REST WCF 服务 - 差异数据输入格式 (JSON/XML)

标签 c# json xml wcf rest

也许这是个愚蠢的问题,但我需要一些帮助。

我正在使用 WCF 提供 Restful 服务。用户通过 http post 请求向我的方法发送数据。

我已经完成了一种接收表示 json 格式数据的字符串的方法。因此,我只是对其进行解析并创建要读取的对象。

我的愚蠢问题是:如何设置另一个方法能够接收 XML 格式的数据输入?我的意思是,对于 json,我只是希望解析一个字符串。对于 XML?

这是我第一次遇到这个问题,我想学习如何以一种干净的方式来解决这个问题(比如 json 的字符串)。

你能帮帮我吗?

更新: 例如,我有这个示例方法:

    [OperationContract]
    [WebInvoke(UriTemplate = "Patient/Add", Method = "POST")]
    int AddPatient(Patient patient);

我看到输入是一个自定义类...所以,我认为客户可以向我发送一个表示此类的 xml...或不?我可以像这样简单地管理输入吗?

最佳答案

我个人使用类似这样的东西。

    [OperationContract]
    [WebInvoke(Method = "POST",
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        UriTemplate = "json")]
    void AddUsefulLinkJson(UsefulLinksWCF.Models.UsefulLink link);

    [OperationContract]
    [WebInvoke(Method = "POST",
        RequestFormat = WebMessageFormat.Xml,
        ResponseFormat = WebMessageFormat.Xml,
        UriTemplate = "xml")]
    void AddUsefulLinkXml(UsefulLinksWCF.Models.UsefulLink link);

那么当您使用客户端时,您可以像这样请求 json 或 xml 中的数据:

http://www.something.com/UsefulLinks/rest/xml

http://www.something.com/UsefulLinks/rest/json

MSDN 上有一篇关于从 NET 4.0 开始的格式选择的好文章:

https://msdn.microsoft.com/en-us/library/ee476510%28v=vs.100%29.aspx

启用后,自动格式化会选择返回响应的最佳格式。它通过按顺序检查以下各项来确定最佳格式:

请求消息的 Accept header 中的媒体类型。

请求消息的内容类型。

操作中的默认格式设置。

WebHttpBehavior 中的默认格式设置。

关于c# - REST WCF 服务 - 差异数据输入格式 (JSON/XML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30319070/

相关文章:

C# 数组矩阵

java - 毕加索不会加载图像 (Android)

xml - SOAPUI 日期格式错误

c# - .NET 在给定时区的情况下将日期时间转换为 UTC

c# - 编码\解码字符串问题 JS <-> C#

c# - Microsoft JScript 运行时错误 : Object expected thrown when called from codebehind

c# - 如果解析不好,则解析 JSON 语法

json - REST 与 Spring 和 Jackson 完整数据绑定(bind)

python - 将 JSON 导入 Pandas DataFrame

android - 如何在底部真正的 main.xml 中显示 admob 横幅