内容协商
就是根据浏览器接收能力不同,返回不同的媒体类型的数据,如application/json;客户端能接收的内容类型一般会再响应头当中accept中
1. 引入支持XML依赖
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
2. 使用PostMan测试
3. 内容协商原理
- 首先判断,请求头中是否已经有确定得媒体类型
MediaType contentType = outputMessage.getHeaders().getContentType();
- 获取客户端(postMan,浏览器)支持得媒体内容类型(获取客户端请求头字段)。
accept:
- 使用contentNegotiationManager,默认使用基于请求头的策略;
- 使用contentNegotiationManager,默认使用基于请求头的策略;
List<MediaType> acceptableTypes = getAcceptableMediaTypes(request);
//头信息管理器
String[] headerValueArray = request.getHeaderValues(HttpHeaders.ACCEPT)