返回的XML
新建SpringCloud项目,控制层返回的是Xml,肯定少了配置,xml如图
支持JSON和XML两种格式的返回 项目想支持两种返回格式,这时候我们只要加上jackson xml的依赖就可以了
<dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-xml-provider</artifactId> </dependency>
访问时通过后缀来规定返回格式:
http://192.168.100.160:5000/a/test/123.xml?token=000
http://192.168.100.160:5000/b/test/123.json?token=000
当然,解决问题的方法有很多种,也有指定请求头的(网上搜索,记录一下,业务用不到):
解决方案
在请求的Mapping上加上produces = { “application/json;charset=UTF-8” },例如:
@GetMapping(value = "/user-instance", produces = { "application/json;charset=UTF-8" }) 以下是json和xml @GetMapping(value = "/user-instance", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @GetMapping(value = "/user-instance", produces = MediaType.APPLICATION_XML_VALUE) --------------------- SpringBoot项目中集成了EurekaServer,有jackson-dataformat-xml这个依赖
可以将实体转换为xml也可以转换为json,根据发起请求的request头中Accept来决定,例如这个:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 可以看到application/xml在最后匹配json的*/ *前面,优先级高过json,所以返回了XML ---------------------