今天在项目中尝试着修改httpservletRequest的content-type,让代码可以自动绑定@RequestBody
因为项目比较老,所以前后端一直是走的content-type:text/html。
于是在httpservletWrapper中修改content-type为:application/json,然后做了个request的forward,但是发现还是进不去@RequestBody。
但是把入参换成httpservletRequest却发现可以进来,取到的content-type已经是application/json了,是对的。因此看了一下springmvc的源码,在
AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters()
中打了个断点,发现取到的content-type还是原来的text/html,也就没有继续深入研究了,推测springmvc是在这个请求进来DispacherServlet的时候就已经将请求的所有header记录下来了,导致我后台的修改无效?
那么问题来了?怎么改可以让@RequestBody生效呢