Spring boot 根据客户端接收不同 ,返回不同的数据类型 json/xml

39 阅读1分钟

有些时候 我们接口的返回值 有可能是 json 有可能是 xml

可以设置客户端的 http 请求头 来告诉服务器 我需要什么样的数据格式

设置客户端 请求头 参数类型

1.Accept属于请求头, Content-Type属于实体头。

Http报头分为通用报头,请求报头,响应报头和实体报头。

请求方的http报头结构:通用报头|请求报头|实体报头

响应方的http报头结构:通用报头|响应报头|实体报头

2.Accept代表发送端(客户端)希望接受的数据类型。

比如:Accept:text/xml;

代表客户端希望接受的数据类型是xml类型

Content-Type代表发送端(客户端|服务器)发送的实体数据的数据类型。

比如:Content-Type:text/html;

代表发送端发送的数据格式是html。

二者合起来,

Accept:text/xml;

Content-Type:text/html

即代表客户端希望接受的数据类型是xml格式,本次客户端请求发送的数据的数据格式是html。

如果我们想返回 xml 格式的类型

首先 先引用一个 xml 包 依赖

   <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
        </dependency>

然后设置 客户端请求头 xml

1.png

这样 相应 就是xml

第二种 开启 返回不同的 返回类型

在配置文件中配置

2.png

然后 使用的时候

在url 参数中 写 format=json / format=xml

框架会根据这个参数的不同 返回不同的 数据类型

http://127.0.0.1:8080/user?format=json