【问题标题】:WCF ResponseFormat JSON Returns Json in Fiddler, Xml in Chrome/Firefox!WCF ResponseFormat JSON 在 Fiddler 中返回 Json,在 Chrome/Firefox 中返回 Xml!
【发布时间】:2011-02-09 07:21:23
【问题描述】:

您好,我有一个 WCF Rest 4.0 项目。出于某种原因,我有一个应该返回 Json 的 web 服务,如果我通过 fiddler 访问端点,但如果我输入地址,我会通过 firefox 或 chrome 访问我得到 xml。怎么回事???

感谢您的帮助!这是代码。

有问题的网络服务:

  [OperationContract]
  [WebGet(UriTemplate = "",                  
          ResponseFormat = WebMessageFormat.Json,
          RequestFormat = WebMessageFormat.Json)]

        public SomeObject [] GetObjects()
        {
              .....

对象代码:

[DataContract]
public class SomeObject
{      
        [DataMember]
        public string Date { get; private set; }

        ....
            public String Site { get; private set; }

【问题讨论】:

  • 检查您的请求标头。特别是“接受”。
  • 您在地址栏中输入的地址是什么?
  • 网络服务的uri。

标签: c# wcf json


【解决方案1】:

我将此作为评论发布,但我会在此处添加更多详细信息。

您的浏览器很可能会发送此标头:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

请注意,它没有提到 json,但确实提到了 xml。

您的 WCF 客户端很可能使用不同的“Accept”标头,该标头优先使用 json。您可以在 Fiddler 中查看。

【讨论】:

  • 这个头文件让 IIS 自动选择响应格式。请参阅我的回答 automaticFormatSelectionEnabled="false" 让服务自行决定格式。
【解决方案2】:

如果您使用的是 .NET 4.0 框架,这就是解决方案:http://karnicki.eu/2011/02/rest-wcf-net-4-0-service-with-json-jsonp-for-jquery/

WCF 现在具有开箱即用的 JSONP 支持,只需要很少的配置。

基本上您只需要编辑/添加两个配置文件条目,authenticationMode 和 StandardEndpoint,瞧,您可以在任何浏览器中查看来自 WCF 服务的 json 响应。

编辑:原始链接已关闭 - 这可能会有所帮助:http://blog.shutupandcode.net/?p=696

【讨论】:

  • 该帖子还有其他地方吗?遇到了同样的问题,链接对我来说已经死了。
【解决方案3】:

浏览器无法显示原始 JSON,但是您可以使用 JSON 查看器之类的工具 (http://jsonviewer.codeplex.com/wikipage?title=Home&ProjectName=jsonview) 或 Fiddler 也适合这项工作。

【讨论】:

  • 即使我点击“查看源代码”?
【解决方案4】:

我遇到了同样的问题。 I used a WCF configuration with no svc.

我不得不将 web.config 中的这个布尔值从 true 更改为:

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>

假:

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2012-10-08
    • 1970-01-01
    • 2015-03-14
    相关资源
    最近更新 更多