在 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
开启一下就行 |