Требования: Записывайте содержимое запроса интерфейса в журнал, который относится к контенту, отправляемому POST, PUT, Delete и т.д., и содержимое может быть формой или строкой json.
Любой, кто имеет опыт, знает, что если мы читаем поток HttpServletRequest или HttpServletResponse в фильтре, то нельзя перечитать его, что приведёт к тому, что запрос будет исключительным. Поэтому нам необходимо использовать ContentCachingRequestWrapper и ContentCachingRequestWrapper, предоставленные Spring, чтобы повторить чтение потока данных. Давайте сначала рассмотрим визуализации, следующим образом:
Чтобы определить, содержит ли запрос информацию о содержимом запроса, код выглядит следующим (Исключёны файлы «multipart/form-data»):
Получите запрошенную информацию о контенте:
Код фильтра:
Заметка:После вызова метода chain.doFilter можно получить запрошенный контентПринцип таков: когда контроллер получает InputStream, ContentCachingRequestWrapper кэширует содержимое в переменную.
Вход по гиперссылке виден.
Вход по гиперссылке виден.
(Конец)
|