将请求从 DTO 转换为 JSON 字符串后,如何拦截WebFilter
它们?
当然我可以添加一个ExchangeFilterFunction
,但clientRequest.body()
只显示我的输入对象,而不是转换后的 json 字符串:
WebClient.builder().defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).filter(logRequest()).build();
private ExchangeFilterFunction logRequest() {
return ExchangeFilterFunction.ofRequestProcessor(clientRequest -> {
LOGGER.info(clientRequest.body()); //body is MyRequest.class
return Mono.just(clientRequest);
});
}
MyRequestDto dto;
client.post().uri(url).syncBody(dto).retrieve().bodyToMono(MyResponseDto.class).block();
因此,我正在寻找一种在将传出请求从 dto 转换为 json 字符串后拦截它们的方法。
反过来,在响应从 json 转换为 dto之前拦截响应。