代码之家  ›  专栏  ›  技术社区  ›  Sander

如何强制请求成为JSON?例如,如何阻止XML正文?

  •  0
  • Sander  · 技术社区  · 16 年前

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

    我的操作具有具有以下属性的webget属性:bodyStyle=webMessageBodyStyle.bare,responseForMat=webMessageFormat.json,requestFormat=webMessageFormat.json

    但是,当我使用WCF客户机时,请求是以XML格式的主体发出的!这是不可取的!如何将其更改为使用JSON?

    此外,我还希望防止在服务器端接受XML——我如何才能完成这一点?我本来希望指定requestformat来完成它,但它似乎只是一个建议?

    编辑:永远,我是个白痴。 我看的是错误的运营合同——正确的合同在一个我没有扩展的区域内……客户工作正常。服务器点仍然有效,但在这个问题的上下文中,最好考虑关闭这个问题。

    2 回复  |  直到 16 年前
        1
  •  2
  •   tomasr    16 年前

    您的意思是指定[webget]并获取带有XML主体的请求?GET请求不能有正文(任何输入必须是URL路径或查询字符串的一部分)。你说的是[WebInvoke]?

    至于在服务器端强制执行请求格式,现在,我认为默认情况下,WCF只处理这两种格式,而不管您在契约中指定了什么。您可能可以通过查看请求消息自己强制执行它。 content type 如果它是“text/xml”(或者与application/json无关的任何东西),则拒绝它。

        2
  •  1
  •   Sander    16 年前

    无论如何,我是个白痴。我看的是错误的运营合同——正确的合同在一个我没有扩展的区域内……客户工作正常。服务器点仍然有效,但在这个问题的上下文中,最好考虑关闭这个问题。