我有一个REST WCF服务和一个WCF客户端应用程序。
我的操作具有带有以下属性的WebGet属性:BodyStyle = WebMessageBodyStyle.Bare,ResponseFormat = WebMessageFormat.Json,RequestFormat = WebMessageFormat.Json
但是,当我使用WCF客户端时,请求是使用XML格式的正文!这是不可取的!如何更改它以使用JSON?
此外,我想阻止XML在服务器端被接受 - 我该如何实现这一目标?我本来希望指定RequestFormat来做它,但它似乎只是一个建议?
编辑:没关系,我是个白痴。我正在查看错误的操作合同 - 正确的是在我没有扩展的#region里面......客户端工作正常。服务器点仍然有效,但在此问题的上下文中,可能最好将此问题视为已关闭。
答案 0 :(得分:2)
您指的是[WebGet]并通过XML正文获取请求是什么意思? GET请求不能有正文(任何输入必须是URL路径或查询字符串的一部分)。你在谈论[WebInvoke]吗?
至于在服务器端强制执行请求格式,我认为WCF默认只处理这两种格式,无论你在合同中指定了什么。你可以通过查看请求消息content type来自己强制执行它,如果它是“text / xml”(或者就application / json而言是其他任何东西)就拒绝它。
答案 1 :(得分:1)
没关系,我是个白痴。我正在查看错误的操作合同 - 正确的是在我没有扩展的#region内...客户端工作正常。服务器点仍然有效,但在此问题的上下文中,可能最好将此问题视为已关闭。