Я добавил конечную точку asyn c в существующее приложение spring-mvc
:
@RestController
public class MyController {
@PostMapping("/")
public Mono<String> post(Object body) {
return Mono.just("test");
//webClient.retrieve().bodyToMono(String.class);
}
}
Я хочу создать глобальный перехватчик / фильтр, который будет регистрировать полезную нагрузку тела запроса. Но как я могу получить к нему доступ?
Я пытался добавить HandlerInterceptorAdapter
, но полезная нагрузка всегда пуста:
static class LoggingInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
ContentCachingRequestWrapper wrapper = new ContentCachingRequestWrapper(request);
byte[] buf = wrapper.getContentAsByteArray();
System.out.println(buf);
System.out.println(buf.length);
return true;
}
}
Возможно, полезная нагрузка еще не присутствует в запросе, или уже был прочитан. Так как я могу получить доступ к телу в этом асин c случае?