在 controller 那里,如果我用一个实体类接收参数,那我日志如何获取本次请求携带的完整 body ?(例如一些错误数据,攻击的非法数据等等) 我能想到的就是直接用 JsonObject 或者 map 或者 string 来接受 。。大佬们还有其他办法吗
1 guisheng 2022-09-23 17:51:12 +08:00 via iPhone request 怎么样 |
![]() | 2 Ufo666 OP @guisheng 我试过在 aop 那里拿到 request 再拿 body ,但拿出来的只有 params..我再去研究研究 |
3 ToDyZHu 2022-09-23 17:56:26 +08:00 写个 aop 在里面用可以获取到接口方法的参数 是 Object[] 你怎么处理都行 |
![]() | 4 wolfie 2022-09-23 18:00:08 +08:00 在 filter 搞。 再看看 Http 包含哪些信息。操作 HttpServetRequest |
![]() | 5 lyhang 2022-09-23 18:02:18 +08:00 HttpServletRequest |
![]() | 6 Ufo666 OP request.getReader()和 request.getParameter("key") 方法读取一次,重复读取会报 java.io.IOException: Stream closed 异常 |
![]() | 7 Ufo666 OP 框架已经读了一次了,我再读会报错 |
![]() | 8 lyhang 2022-09-23 18:04:57 +08:00 request.getParameterNames() 然后循环取 |
10 ningmengmao 2022-09-23 18:46:35 +08:00 via Android 可以自定义 http message coverter ,在类型反序列化时操作 |
11 doraon 2022-09-23 18:58:22 +08:00 重写 HttpRequestWrapper |
12 v2eb 2022-09-23 19:03:25 +08:00 via Android 重写的时候注意, 上传文件请求需要重写的方法不太一样, 可以直接放行 |
![]() | 14 qinxi 2022-09-24 15:08:33 +08:00 spring 已经提供好了 CommonsRequestLoggingFilter 开启一下就行 |