默认情况下,WCF REST始终返回XML

时间:2013-06-16 21:41:04

标签: .net json wcf

我在.svc上定义了WCF服务:

<%@ ServiceHost Language="C#" Debug="true" Service="OL4RENT.WebService.BienWSREST" CodeBehind="BienWSREST.svc.cs"  Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>

界面:

  [WebeInvoke( Method = "GET",
  ResponseFormat=WebMessageFormat.Json,
  BodyStyle = WebMessageBodyStyle.Bare,
  UriTemplate = "/{tipo}/{bienId}")]
  DataBien VerBien(string tipo, string bienId);

因此它应该默认返回Json,但如果我通过浏览器执行正常请求,我会以xml格式获得响应!如果请求有Content-Type = application / json。

,我只会得到Json

如何配置返回json的默认行为?

1 个答案:

答案 0 :(得分:0)

来自MSDN doc:如果请求消息包含Accept标头,则Windows Communication Foundation(WCF)基础结构将搜索它支持的类型。

默认情况下,浏览器会向每个请求的Accept标头添加大量内容。有关详细信息,请参阅http://www.gethifi.com/blog/browser-rest-http-accept-headers。 底线是您使用的浏览器在“application / json”(如果它甚至有)之前的头文件中有“application / xml”,从而导致WCF内部返回XML。

最好使用休息客户端(例如Fiddler,Chrome或FF的RESTClient扩展程序)来测试您的服务电话。

有关如何配置WCF svcs对请求的行为的信息,请参阅MSDN doc