【问题标题】:Can the RESTful service set its request and response type from "Accept" property of the clientRESTful 服务能否从客户端的“接受”属性中设置其请求和响应类型
【发布时间】:2011-12-21 08:35:18
【问题描述】:

RESTFul 服务的请求和响应是否可以根据客户端的“Accept”属性动态提供服务

即如果客户端可以“接受”应用程序/xml,那么我的服务应该会自动理解请求和响应应该是 xml 类型并相应地处理请求。

因此,我不会为希望在 json 中请求/响应的客户创建另一个服务,并且相同的服务应该能够处理它。

【问题讨论】:

    标签: c# wcf http rest wcf-rest


    【解决方案1】:

    是的,事实上 WCF 可以配置为为您执行此操作:WCF Web HTTP Formatting

    启用后,自动格式化会选择最适合的格式 返回响应。它通过检查来确定最佳格式 以下,按顺序:

    1. 请求消息的 Accept 标头中的媒体类型。
    2. 请求消息的内容类型。
    3. 操作中的默认格式设置。
    4. WebHttpBehavior 中的默认格式设置。

    另外,请参阅 <webHttpEndpoint> 的文档,特别是 automaticFormatSelectionEnabled 属性。

    【讨论】:

      【解决方案2】:

      是的! 它可能应该是协商内容类型的首选方式。

      也就是说,您可以在 URL 中指定的内容类型覆盖可以方便地从浏览器调试 GET。 (即 myResource.json 将等同于带有 Accept json 的 myResource)

      【讨论】:

        【解决方案3】:

        使用WCF Web Api Content negotiation 真的很容易。只需设置 Accept Header 即可。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多