我有一个ASP.NET Web API网站,有时我只想查看HTTP GET
返回的数据。虽然我知道如何通过编程获得XML或JSON,但我不知道在哪里更改浏览器的设置(IE,Firefox和Chrome)以请求XML或JSON?
答案 0 :(得分:8)
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扩展来执行此操作。
答案 1 :(得分:2)
我正在使用Visual Studio 2015构建WebAPI。 我正在使用Firefox进行测试。 我运行了基本项目,并尝试调用以下WebAPI请求以获取对象(序列化为JSON)。 当我通过Firefox进行调用时出现错误,因为Firefox请求XML和WebAPI尝试将对象默认为JSON,但没有自动生成XML的概念。
解决强>
要修复此问题,您必须转到firefox的导航栏并输入:
about:config<ENTER>
您将看到一个警告屏幕。单击按钮继续。
然后,您将看到可配置项目列表
我们想要network.http.accept.default
。
如果您在顶部搜索栏中输入单词“accept”,则最容易找到。
找到该项目后。双击它,您就可以编辑它。 我们只想添加一个值,告诉它请求JSON作为默认值。 此标头将告诉服务器JSON没问题。由于WebAPI测试没有设置要返回的特定类型,因此允许浏览器控制它。
当您双击该项目时,将弹出一个带有编辑框的对话框。 您只想将以下字符串添加到现有字符串的开头。
application/json,
确保为其添加一个尾随逗号,以将其与其他现有值分开。单击“确定”按钮。
只要您进行了更改(单击“确定”以完成更改),您就可以返回到原始选项卡并再次调用API方法,它将按预期返回JSON。