如何强制请求为JSON?即如何阻止XML体?

时间:2009-08-04 11:34:22

标签: wcf json rest

我有一个REST WCF服务和一个WCF客户端应用程序。

我的操作具有带有以下属性的WebGet属性:BodyStyle = WebMessageBodyStyle.Bare,ResponseFormat = WebMessageFormat.Json,RequestFormat = WebMessageFormat.Json

但是,当我使用WCF客户端时,请求是使用XML格式的正文!这是不可取的!如何更改它以使用JSON?

此外,我想阻止XML在服务器端被接受 - 我该如何实现这一目标?我本来希望指定RequestFormat来做它,但它似乎只是一个建议?

编辑:没关系,我是个白痴。我正在查看错误的操作合同 - 正确的是在我没有扩展的#region里面......客户端工作正常。服务器点仍然有效,但在此问题的上下文中,可能最好将此问题视为已关闭。

2 个答案:

答案 0 :(得分:2)

您指的是[WebGet]并通过XML正文获取请求是什么意思? GET请求不能有正文(任何输入必须是URL路径或查询字符串的一部分)。你在谈论[WebInvoke]吗?

至于在服务器端强制执行请求格式,我认为WCF默认只处理这两种格式,无论你在合同中指定了什么。你可以通过查看请求消息content type来自己强制执行它,如果它是“text / xml”(或者就application / json而言是其他任何东西)就拒绝它。

答案 1 :(得分:1)

没关系,我是个白痴。我正在查看错误的操作合同 - 正确的是在我没有扩展的#region内...客户端工作正常。服务器点仍然有效,但在此问题的上下文中,可能最好将此问题视为已关闭。