有什么办法能够对json格式的 POST请求中的参数进行修改?

新手上路,请多包涵

背景是这样的:

目前有个业务上的需求,想要对传入的基参中的某个参数赋值增强(而且确定是要后端来做)

我想到的大致思路是通过aop来做。 现在公司也有一个CloneRequestWrapper工具类能够实现流的复制,能够从中取出json字符串,自己进行如校验token这样的业务处理。 但是想要写入改怎么操作呢? 在网上搜了很多博客文章,基本上都是说的get方法,post的能做么?

阅读 2.9k
2 个回答

重写HttpServletRequestWritableWrapperFilter在重写的Filter中写好自己的逻辑最终将重写的Filter放在过滤链中

1、基于Filter,既然要修改,肯定涉及到数据读取,但是HttpServletRequest的流只能读一次,所以主要是自己实现一个HttpServletRequest,把读到的流缓缓存起来,后续的服务再读流的时候,其实读取的是自己缓存的流数据就可以。
但是这种方式设计到文件上传就不是很好处理了
2、既然你做的是一些通用的业务处理,那么你类似Controller上的入参,可以继承使用一个公共的基类,把公共属性放到基类里面,再对Controller做一个AOP就可以。
3、也可以使用Spring的自定义参数解析HandlerMethodArgumentResolver,你把Http的数据读出来,在这里自己的各种校验处理,合法后,把要映射的参数类型取出来,做一次映射就可以。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题