从控制器记录发布数据的最佳方法是什么?我找不到使用logback或其他日志框架的任何好例子。我无法调试请求,因为我无法看到帖子数据,我不想添加拦截器。
@RequestMapping(method = RequestMethod.POST, value = "/notification")
@ResponseBody
public void notification(HttpServletRequest request, HttpServletResponse response) throws Exception {
答案 0 :(得分:1)
据我所知,没有内置的方法可以做到这一点。
我会编写一个自定义Filter
,其中HttpServletRequest
将HttpServletRequestWrapper
包裹起来,将请求InputStream
读入BufferInputStream
,并将其内容注销为收到String
(或其他)方法时POST
。
请注意,如果内容只是二进制文件,则不希望记录该内容。
答案 1 :(得分:0)
我只是迭代参数并将它们吐出来。
String getCaseInsensitiveParameter(HttpServletRequest request, String parameter){
Map params = request.getParameterMap();
Iterator i = params.keySet().iterator();
while ( i.hasNext() )
{
String key = (String) i.next();
String value = ((String[]) params.get( key ))[ 0 ];
if (parameter.equalsIgnoreCase(key)) {
return value;
}
}
return null;
}