我在.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的默认行为?
答案 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。