SpringBoot xml报文 springmvc xml报文_SpringBoot xml报文

SpringBoot xml报文 springmvc xml报文_HTTP_02

首先,请求通过accept请求头声明了支持的返回格式

然后,框架根据该请求头和代码实现(注解)选择了对应的MessageConverter处理返回!

一、验证过程

1、返回html

1.1、请求组装

http://10.110.20.146/cloud-web/version-info

请求头:Accept=text/html; charset=utf-8

1.2、请求报文

GET /cloud-web/version-info HTTP/1.1

Host: 10.110.20.146

Accept: text/html; charset=utf-8

Cache-Control: no-cache

Postman-Token: 9c41ee47-66df-cdbc-ff6f-1d581837b9c1

1.3、执行过程

SpringBoot xml报文 springmvc xml报文_HTTP_03

2、返回json

2.1、请求组装

http://10.110.20.146/cloud-web/version-info

Accept=application/json; charset=UTF-8

2.2、请求报文

GET /cloud-web/version-info HTTP/1.1

Host: 10.110.20.146

Accept: application/json; charset=UTF-8

Cache-Control: no-cache

Postman-Token: e8507a90-eaa7-c339-c78c-a24e51d9aeb6

2.3、执行过程

SpringBoot xml报文 springmvc xml报文_xml_04

3、返回xml

3.1、请求组装

http://10.110.20.146/cloud-web/version-info

请求头:Accept=application/xml; charset=utf-8

3.2、请求报文

GET /cloud-web/version-info HTTP/1.1

Host: 10.110.20.146

Accept: application/xml

Cache-Control: no-cache

Postman-Token: ac2859b4-c38a-2b20-e432-f9f20dc8486f

3.3、执行过程

SpringBoot xml报文 springmvc xml报文_xml_05

二、后台实现

1、返回xml

返回xml要满足两个条件:

SpringBoot xml报文 springmvc xml报文_html判断xml进行登陆_06

请求头中包含了application/xhtml+xml

SpringBoot xml报文 springmvc xml报文_HTTP_07

1.1、开发阶段:JavaBean:@XmlRootElement注解

SpringBoot xml报文 springmvc xml报文_html判断xml进行登陆_08

1.2、开发阶段:Controller:@ResponseBody注解和返回Java对象

SpringBoot xml报文 springmvc xml报文_HTTP_09

1.3、请求阶段:HTTP Request Header中的Accept属性

SpringBoot xml报文 springmvc xml报文_MVC_10

2、如果要返回json

开发阶段:引入json的相关jar包

SpringBoot xml报文 springmvc xml报文_xml_11

或者

SpringBoot xml报文 springmvc xml报文_HTTP_12

2.1、开发阶段:JavaBean:无@XmlRootElement注解

SpringBoot xml报文 springmvc xml报文_SpringBoot xml报文_13

2.2、开发阶段:Controller返回Java对象

SpringBoot xml报文 springmvc xml报文_MVC_14

和getEmployeeXml()相比,这里返回对象变成了Employee,

因为Employee类上没有@XmlRootElement注解,所以Spring不会选择Jaxb2RootElementHttpMessageConverter。

又因为Accept属性中包含了*/*,表示接受任意格式返回数据,所以GsonHttpMessageConverter的canWrite()方法返回true.这样Spring就会选择MappingJackson2HttpMessageConverter或者GsonHttpMessageConverter来进行数据转换。

2.3、请求阶段:HTTP Request Header中的Accept属性

经过以上方式,返回结果就可以自动被转换成对应的XML或者JSON数据

三、测试用例

SpringBoot xml报文 springmvc xml报文_MVC_15

调用中行接口针对返回报文(xml形式)做相关处理

最近在对接中行银行接口,在获取返回报文的时候遇到一些问题,现在在这里做个总结 TIP: 在返回报文之前,要对前置机的URL请求,在这期间遇到一个坑,还是通过查看日志才发现问题 在填写转账信息的时候要求 ...

SpringMVC返回void的三大方法

版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) 在是springMVC的void的返回值中,有三大方法可以运行,个人觉得 ...

基于 Annotation 拦截的 Spring AOP 权限验证方法

基于 Annotation 拦截的 Spring AOP 权限验证方法 转自:http://www.ibm.com/developerworks/cn/java/j-lo-springaopfilte ...

SpringMVC 返回 html 视图页面,SpringMVC与Servlet,Servlet重定向与转发

1. SpringMVC与Servlet的关系 SpringMVC框架是建立在Servlet之上的,提供各种功能,各种封装,各种方便的同时,它一点儿也没有限制Servlet,我们完全可以在Spring ...

Spring Security验证流程剖析及自定义验证方法

Spring Security的本质 Spring Security本质上是一连串的Filter, 然后又以一个独立的Filter的形式插入到Filter Chain里,其名为FilterChainP ...

SpringMVC返回Json,自定义Json中Date类型格式

—————————————————————————————————————————————————————— ...

SpringMVC 返回自定义属性名

SpringMVC 返回的属性名默认是小写驼峰形式的实体对象中的属性名,如 userID 属性名它会返回 userId. 如果接口方式之前已经定下来,这样前端按原来的方式取数据会读取失败的,那有没有方 ...

SpringMVC使用@Valid注解进行数据验证

SpringMVC使用@Valid注解进行数据验证   from: 我们在做Form表单提交的时 ...

基于 Token 的身份验证方法

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的: 客户端使用用户名跟密码请求登录 服务端收到请求,去验证用户名与密码 验证成功后,服务端会签发一个 Toke ...

随机推荐

两个已排序数组进行合并后的第K大的值--进军硅谷

我看到此题时,首先想到一个一个比较遍历过去,这是最暴力的方法,后面我想到了已经排序,那么对每个数组进行二分,然后比较这两个值.此书第三种解法,挺不错,只对那个长度较小的数组进行二分查找,保证i+j-1 ...

(转载)SQL联合查询中的关键语法

(转载) 联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用 ...

.NET Core 2.0 项目的智能提示是英文,改成中文的解决方案

截至目前为止(2017.09.21),Microsoft 官方并没有提供 .NET Core 2.0 正式版的多语言安装包. 因此,在 Visual Studio 2015 Update 3 和 Vi ...

LeetCode 145 二叉树的后序遍历(非递归)

题目: 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解题思路: 1 ...

CF 989

今天晚上闲来无事打了一场CF......div.2,第600名.太弱了. T1看懂题之后发现是水题(废话),6min AC. T2仔细思考之后发现可做,但是由于n=p的特判没确定到底有没有解,WA了一 ...

Linux电源管理【转】

转自: PM notifier机制: 应用场景: There are s ...

如何用Baas快速在腾讯云上开发小程序-系列1:搭建API & WEB WebSocket 服务器

版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/221059001487422606 来源:腾云阁 h ...

js实现文件的上传和输出,拖拽上传图片

js文件上传 文件下载 以前的文件的下载都是在服务器,现在也是放在服务器比较好,有时候为了一些开发的方便,我们临时把处理的数据就放在了本地,然后自己访问.这个也是可以的. 1.利用html5的 Fil ...

关于spring session redis共享session的跨子域的处理

安装完redis, spring端只要下面这两个bean配置上就可以用了 <?xml version="1.0" encoding="UTF-8"?&gt ...

修改salt-minion的id后报错解决方法

centos7使用命令 /usr/bin/salt-minion start运行报错 Error parsing configuration file: /etc/salt/master - expe ...