REST WCF 服务 - 差异数据输入格式 (JSON/XML)
REST WCF service - differences data input format (JSON/XML)
也许这是个愚蠢的问题,但我需要一些帮助。
我正在使用 WCF 制作 restful 服务。用户通过 http post 请求向我的方法发送数据。
我已经完成了一种接收表示 json 格式数据的字符串的方法。所以,我简单地解析它并创建我的对象来读取。
我的愚蠢问题是:如何设置另一种方法能够接收 XML 格式的数据输入?我的意思是,对于 json 我只是希望解析一个字符串。 XML?
这是我第一次遇到这个问题,我想学习如何以干净的方式解决这个问题(比如 json 的字符串)。
你能帮帮我吗?
更新:
例如,我有这个示例方法:
[OperationContract]
[WebInvoke(UriTemplate = "Patient/Add", Method = "POST")]
int AddPatient(Patient patient);
我看到输入是自定义的 class... 所以,我认为客户可以向我发送一个 xml 代表这个 class.. 或不?我可以这样简单地管理输入吗?
我个人使用类似这样的东西。
[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
启用后,自动格式化会选择 return 响应的最佳格式。它通过按顺序检查以下内容来确定最佳格式:
请求消息Accept中的媒体类型header.
请求消息的content-type。
操作中的默认格式设置。
WebHttpBehavior 中的默认格式设置。
也许这是个愚蠢的问题,但我需要一些帮助。
我正在使用 WCF 制作 restful 服务。用户通过 http post 请求向我的方法发送数据。
我已经完成了一种接收表示 json 格式数据的字符串的方法。所以,我简单地解析它并创建我的对象来读取。
我的愚蠢问题是:如何设置另一种方法能够接收 XML 格式的数据输入?我的意思是,对于 json 我只是希望解析一个字符串。 XML?
这是我第一次遇到这个问题,我想学习如何以干净的方式解决这个问题(比如 json 的字符串)。
你能帮帮我吗?
更新: 例如,我有这个示例方法:
[OperationContract]
[WebInvoke(UriTemplate = "Patient/Add", Method = "POST")]
int AddPatient(Patient patient);
我看到输入是自定义的 class... 所以,我认为客户可以向我发送一个 xml 代表这个 class.. 或不?我可以这样简单地管理输入吗?
我个人使用类似这样的东西。
[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
启用后,自动格式化会选择 return 响应的最佳格式。它通过按顺序检查以下内容来确定最佳格式:
请求消息Accept中的媒体类型header.
请求消息的content-type。
操作中的默认格式设置。
WebHttpBehavior 中的默认格式设置。