【发布时间】:2015-05-19 07:16:55
【问题描述】:
也许这是一个愚蠢的问题,但我需要一些帮助。
我正在使用 WCF 来提供宁静的服务。用户通过 http post 请求将数据发送给我的方法。
我已经完成了一种接收表示 json 格式数据的字符串的方法。所以,我只是解析它并创建我的对象来读取。
我的愚蠢问题是:如何设置另一种方法来接收 XML 格式的数据输入?我的意思是,对于 json,我只希望解析一个字符串。对于 XML?
这是我第一次遇到这个问题,我想学习如何以一种干净的方式来解决这个问题(比如 json 的字符串)。
你能帮帮我吗?
更新: 例如,我有这个示例方法:
[OperationContract]
[WebInvoke(UriTemplate = "Patient/Add", Method = "POST")]
int AddPatient(Patient patient);
我看到输入是一个自定义类......所以,我认为客户可以向我发送一个代表这个类的 xml.. 或者不?我可以像这样简单地管理输入吗?
【问题讨论】:
-
我不知道它在 c# 中是如何工作的,但通常当您想要指定休息服务的可接受格式时,您会依赖媒体类型。在您的 json 服务中,您应该指定它使用“application/json”,而在另一个服务中,您将指定“application/xml”
-
我已经这样做了:[WebGet(UriTemplate = "Erogazioni?retista={codret}&lotto={nLotto}&H={hashedString}", ResponseFormat = WebMessageFormat.Xml)] 用于输出格式。 ..但是对于输入?你有一些例子,还有其他语言吗?
-
你的意思是你想要第二种方法,让你接收xml格式的数据?
-
@Zanuff 是的,我的意思是这个! :)
-
好吧,在 Java 中,您只需对指定可接受媒体类型的方法进行注释:
@POST @Consumes("application/json") public void getDataInJSON(Date automaticallyParsedDate)。但是,有一个库 (Jersey) 负责根据您指定的媒体类型对数据进行编组/解组。我不知道如何在 c# 中完成。