zoukankan      html  css  js  c++  java
  • 关于webapi 返回的类型的笔记

    经过测试发现使用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
       

  • 相关阅读:
    Spring MVC Ajax 嵌套表单数据的提交
    Spring MVC 过滤静态资源访问
    Spring MVC 页面跳转时传递参数
    IDEA Maven 三层架构 2、运行 springMVC
    IDEA Maven 三层架构 1、基本的Archetype 搭建
    EasyUI DataGrid 基于 Ajax 自定义取值(loadData)
    Spring MVC Ajax 复杂参数的批量传递
    Mybatis Sql片段的应用
    在 Tomcat 8 部署多端口项目
    自动升级的设计思路与实现
  • 原文地址:https://www.cnblogs.com/rufus-hua/p/3835304.html
Copyright © 2011-2022 走看看