REST WCF服务-不同的数据输入格式(JSON/XML)
本文关键字:格式 JSON XML 输入 数据 服务 WCF REST | 更新日期: 2023-09-27 17:49:36
也许这是一个愚蠢的问题,但我需要一些帮助。
我正在使用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/jsonMSDN上有一篇关于从。NET 4.0开始的格式选择的好文章:
https://msdn.microsoft.com/en-us/library/ee476510%28v=vs.100%29.aspx启用后,自动格式化将选择返回响应的最佳格式。它通过依次检查以下内容来确定最佳格式:
请求消息的Accept报头中的媒体类型。
请求消息的内容类型。
操作中默认设置的格式。
WebHttpBehavior的默认格式设置。