SpringCloud因为Eureka返回结果由json变为xml解决方案

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

返回的XML

新建SpringCloud项目,控制层返回的是Xml,肯定少了配置,xml如图

SpringCloud因为Eureka返回结果由json变为xml解决方案_第1张图片

支持JSON和XML两种格式的返回
项目想支持两种返回格式,这时候我们只要加上jackson xml的依赖就可以了


  com.fasterxml.jackson.jaxrs
  jackson-jaxrs-xml-provider

 

访问时通过后缀来规定返回格式:

http://192.168.100.160:5000/a/test/123.xml?token=000

SpringCloud因为Eureka返回结果由json变为xml解决方案_第2张图片

http://192.168.100.160:5000/b/test/123.json?token=000

ae3510e86eb2f20760a64d909a92cd5e04e.jpg

当然,解决问题的方法有很多种,也有指定请求头的(网上搜索,记录一下,业务用不到):

解决方案

在请求的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
--------------------- 
 

 

 

 

 

转载于:https://my.oschina.net/Skynet01/blog/3011294

你可能感兴趣的:(SpringCloud因为Eureka返回结果由json变为xml解决方案)