我在 POST 请求中收到一些 XML 有效负载,并希望看到接收到的有效负载以进行调试。
下面(我的自定义 WebFilter)代码按预期记录了 URI 和请求标头,但没有记录请求正文/有效负载,我的反应式代码一定有问题 -
final ServerHttpRequest request = exchange.getRequest();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
LOGGER.info("Request: uri={}", request.getURI());
LOGGER.info("Request: headers={}", request.getHeaders().entrySet());
request.getBody().doOnNext(dataBuffer -> {
try {
Channels.newChannel(baos).write(dataBuffer.asByteBuffer().asReadOnlyBuffer());
String body = new String(baos.toByteArray());
LOGGER.info("Request: payload={}", body);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud)
我查看了布赖恩对下面帖子的回复并遵循了它,但由于没有代码,我可能犯了一些愚蠢的错误
更新代码
@Configuration
public class RequestFilter implements WebFilter {
private static final Logger LOGGER = …Run Code Online (Sandbox Code Playgroud)