gpt4 book ai didi

json - 使用 resteasy 记录 json 帖子

转载 作者:行者123 更新时间:2023-12-04 14:12:56 28 4
gpt4 key购买 nike

我正在寻找一种在 RESTEASY 框架中记录 JSON 帖子的方法。

我想将 POST 正文记录到日志文件中,以查看客户端发送给我的内容。

是否有任何拦截器或类似的东西可以使用,我已经找到了 PreProcessInterceptor 的示例,但它看起来已被弃用。

我正在使用resteasy 3.0.8

最佳答案

您可以使用 ContainerRequestFilter :

@Provider
public class LogFilter implements ContainerRequestFilter {

private Logger LOG = LoggerFactory.getLogger(LogFilter.class);

@Override
public void filter(ContainerRequestContext requestContext) throws IOException {

if (!"POST".equals(requestContext.getMethod())
|| !MediaType.APPLICATION_JSON_TYPE.equals(requestContext.getMediaType())
|| requestContext.getEntityStream() == null) {
return;
}

ByteArrayOutputStream baos = new ByteArrayOutputStream();
IOUtils.copy(requestContext.getEntityStream(), baos);
byte[] bytes = baos.toByteArray();
LOG.info("Posted: " + new String(bytes, "UTF-8"));
requestContext.setEntityStream(new ByteArrayInputStream(bytes));

}

}

除了检查 Method 和 Content-Type,您还可以根据 @NameBinding 注册此过滤器只在你需要的地方。

注:这个简单的例子复制了请求的 InputStream,所以它会被读取两次(可能是性能问题)。

关于json - 使用 resteasy 记录 json 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com