【问题标题】:Firefox requests XML and IE requests JSON from my Web API website, what to change browser's setting?Firefox 从我的 Web API 网站请求 XML 和 IE 请求 JSON,如何更改浏览器的设置?
【发布时间】:2015-11-03 06:28:12
【问题描述】:

我有一个 ASP.NET Web API 网站,有时我只想查看HTTP GET 返回的数据。虽然我知道如何通过编程获取 XML 或 JSON,但我不知道在哪里更改浏览器的设置(IE、Firefox 和 Chrome)以请求 XML 或 JSON?

【问题讨论】:

    标签: json xml asp.net-web-api


    【解决方案1】:

    ASP.NET Web API 根据 Accept 标头返回 JSON 或 XML。

    不同的浏览器有不同的默认Accept 标头。至于我:

    火狐:

    text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
    

    text/xml 是最可取的,WebAPI 为 Firefox 返回 XML

    IE:

    application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    

    铬:

    */*
    

    由于 XML 和 JSON 同样可以接受,WebAPI 选择 JSON

    如何更改这些设置

    IE根据注册表键生成Accept标头值:

    HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Accepted Documents
    

    Firefox 将其存储在变量Network.http.accept.default中。
    您可以about:config 选项卡中更改它

    我没有找到关于 Chrome 的信息。或许,您可以使用 ModHeader 扩展来执行此操作。

    【讨论】:

      【解决方案2】:

      我正在使用 Visual Studio 2015 构建 WebAPI。 我正在使用 Firefox 来测试它。 我运行了基本项目并尝试调用以下 WebAPI 请求来取回一个对象(序列化为 JSON)。 当我通过 Firefox 进行调用时,我收到一个错误,因为 Firefox 请求 XML 并且 WebAPI 尝试将对象默认为 JSON,但没有自动生成 XML 的概念。

      分辨率

      要解决此问题,您必须转到 Firefox 的导航栏并输入:

      about:config<ENTER>
      

      您将看到一个警告屏幕。点击按钮继续。

      然后您将看到可配置项目的列表。
      我们想要network.http.accept.default

      如果您在顶部搜索栏中输入单词接受,最容易找到。

      一旦你找到那个项目。双击它,您将能够对其进行编辑。 我们只想添加一个值,告诉它请求 JSON 作为默认值。 这个标头会告诉服务器 JSON 没问题。由于 WebAPI 测试没有设置返回的特定类型,因此允许浏览器对其进行控制。

      当您双击该项目时,将弹出一个带有编辑框的对话框。 您只想将以下字符串添加到现有字符串的开头。

      application/json,
      

      确保给它一个尾随逗号,以将其与其他现有值分开。单击确定按钮。

      一旦您进行了更改(单击“确定”完成更改),您就可以返回到原来的选项卡并再次调用 API 方法,它将返回您所期望的 JSON。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-11
        • 1970-01-01
        • 1970-01-01
        • 2016-10-26
        • 2014-04-05
        • 1970-01-01
        相关资源
        最近更新 更多