RESTful服务是否可以从客户端的“Accept”属性设置其请求和响应类型

时间:2011-11-03 16:29:32

标签: c# wcf http rest wcf-rest

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

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

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

3 个答案:

答案 0 :(得分:1)

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

  

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

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

WCF Web Api Content negotiation非常简单。只需设置Accept Header就可以了。