WebAPI返回数据类型解惑[转]
最近开始使用WebAPI,上手很容易,然后有些疑惑
1.WebAPI默认返回什么数据类型,json还是xml?
2.怎么修改WebAPI的返回数据类型
,我用IE浏览器请求返回的数据都是JSON格式的,用Firefox和Chrome返回数据格式是XML,然后自己用HttpWebRequest请求返回的是JSON格式的,我就纳闷了,咋同样的程序、同样的配置文件,输出数据格式为啥还带不一样的,就算你默认输出json或者xml都可以理解,咋还不同浏览器,输出格式不同,经过一番研总算搞懂了原因
经过测试发现使用IE浏览器返回的数据是json,而使用Firefox和Chrome返回的则为xml,经研究发现IE在发生http请求时请求头accpet节点相比Firefox和Chrome缺少"application/xml"类型,由于WebAPI返回数据为xml或json格式,IE没有发送可接受xml和json类型,所以默认为json格式数据,而Firefox和chrome则发送了可接受xml类型,故返回了xml数据,下面是IE、Firefox和Chrome浏览器的请求头
| 浏览器 | 返回数据格式 | accept请求头 |
| IE | json |
text/html, application/xhtml+xml, */* |
| Firefox | xml |
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,*/* |
| Chrome | xml |
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,*/* |
继续进行如下测试
1.只发送accept:application/json,结果返回了json
2.只发送accept:application/xml,结果返回了xml
3.同时发送accept:application/xml,application/json,结果返回了json
4.同时发送accept:application/json,application/xml,结果返回了json
5.修改优先级同时发送application/xml;q=1.0,application/json;q=0.9,结果返回了xml
由此可以得出结论:
WebAPI的返回数据类型是有请求头的accept来决定的,默认返回类型为json
1.application/json和application/xml都没有时,返回json数据
2.仅有application/json时,返回json数据
3.仅有application/xml时,返回xml数据
4.同时有application/json和application/json时,返回数据类型和两者的顺序无关,若两者优先级相同则返回json,若优先级不同则返回优先级高的类型
详见下表:
| Accept头 | 返回类型 |
| application/json | json |
| application/xml | xml |
| application/xml,application/json | json |
| application/json,application/xml | json |
| application/xml;q=1.0,application/json;q=1.0 | json |
| application/xml;q=0.9,application/json;q=0.9 | json |
| application/xml;q=1.0,application/json;q=0.9 | xml |
| application/xml;q=0.9,application/json;q=1.0 | json |
转:http://www.cnblogs.com/lzrabbit/archive/2013/03/19/2948522.html
WebAPI返回数据类型解惑[转]的更多相关文章
- WebAPI返回数据类型解惑
本文来自:http://www.cnblogs.com/lzrabbit/archive/2013/03/19/2948522.html 最近开始使用WebAPI,上手很容易,然后有些疑惑 1.Web ...
- WebAPI返回数据类型解惑 以及怎样解决Extjs无法解析返回的xml
最近开始使用WebAPI,上手很容易,然后有些疑惑 1.WebAPI默认返回什么数据类型,json还是xml? 2.怎么修改WebAPI的返回数据类型,我用IE浏览器请 求返回的数据都是JSON格式的 ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...
- WebAPI返回数据类型
最近开始使用WebAPI,上手很容易,然后有些疑惑 1.WebAPI默认返回什么数据类型,json还是xml? 2.怎么修改WebAPI的返回数据类型,我用IE浏览器请求返回的数据都是JSON格式的, ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)
我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为json,xml等),但是如果Controller的自动序列化后的结果不是我们想要的该 ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json)
注:本文为个人学习摘录,原文地址:http://www.cnblogs.com/OpenCoder/p/4628557.html 我们都知道在使用WebApi的时候Controller会自动将Acti ...
- Asp.Net WebAPI配置接口返回数据类型为Json格式
Asp.Net WebAPI配置接口返回数据类型为Json格式 一.默认情况下WebApi 对于没有指定请求数据类型类型的请求,返回数据类型为Xml格式 例如:从浏览器直接输入地址,或者默认的XM ...
- MVC4.0 WebApi如何自定义返回数据类型
1.客户端可以通过HTTP Accept消息头来通知服务器客户端想要什么样的MIME类型数据,例如:application/json则代表告诉服务器想要的是Json数据 2.服务器端撇开客户端的请求类 ...
- 关于webapi 返回的类型的笔记
经过测试发现使用IE浏览器返回的数据是json,而使用Firefox和Chrome返回的则为xml,经研究发现IE在发生http请求时请求头accpet节点相比Firefox和Chrome缺少&quo ...
随机推荐
- linux下使用fork,exec,waitpid模拟system函数
代码如下: #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include &l ...
- js判断中文
var reg = /^[\u4E00-\u9FA5]+$/;if(!reg.test(keywordscn)){ alert('请填写中文') return false;}
- 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……
两台主机A.B搭建mysql主从复制关系(A为master,B为slave)后,在slave上执行show slave status,结果中显示Last_IO_Error: error connect ...
- 使用ajaxfileupload插件进行Ajax Post 异步提交多个文件
前台代码: <div> <div> <img src="images/pro_upload.png" onclick="javascript ...
- ActiveReports中如何使用Excel数据源
ActiveReports支持的数据源类型非常多,无论是常用的Oracle数据库.SQL Server.mySQL,还是开源的PostgreSQL,只要是具有ODBC驱动的数据库都可以正常使用,本文讲 ...
- jQuery滚动数字
<ul class="dateList"> <li class="one"> <p class="titleName&q ...
- JS根据登录的城市不同调用不同的内容
这个思路就是通过js获取访问客户的IP地址,根据IP接口判断IP的所属城市 1.先引入ip接口的js文件,网上有很多,这里用的是新浪的(感谢新浪) <script type="text ...
- 仿苹果导航菜单js问题
通过鼠标与不同图片的间距比对图片做相应的放大缩小. <div id="box"> <img src="images/1.png" class= ...
- RHEL 6.0服务器安装Oracle 11G R2 最终版
RHEL6安装Oracle 11g R2最终版 结合网上教程 服务器实战所得 1.使用DVD做yum源新建dvd挂载目录[root@fxq-dp ~]# mkdir /media/iso进入到DVD挂 ...
- 屏蔽zencart logs文件夹下不断生成的日志文件
在根目錄下的logs文件夾中,經常生成一些錯誤文件類似myDEBUGxxxxx.log這樣的錯誤文件(而且這樣的錯誤文件由來并非網站出現什麽嚴重不可挽救的錯誤,大部分是一些未定義變量這樣的不起眼的小錯 ...