我目前正在尝试找到一种方法,使用过滤器来捕获所有入站请求,然后将正文发送到其他地方,根据此处的官方文档:https://www.playframework.com/documentation/2.8.x/ JavaHttpFilters 这应该是可能的,因为最后一节指出: “Play 提供了一个名为 EssentialFilter 的较低级别过滤器 API,它使您可以完全访问请求正文。此 API 允许您将 EssentialAction 与另一个操作包装在一起。”
但是,当我创建包含在 EssentialFilter 中的 EssentialAction 时,我只能访问请求的标头,而列出的示例并没有真正涵盖如何访问正文。
根据这个接受的答案,这是有道理的:How to log the body from every request in Play?,但与官方文档所述相冲突。
我有什么遗漏的吗?
public class SendBodyFilter extends EssentialFilter {
private final Materializer mat;
@Inject
SendBodyFilter(
Materializer mat
) {
super();
this.mat = mat;
}
@Override
public EssentialAction apply(EssentialAction next) {
return EssentialAction.of(request -> {
System.out.println(request);
return next.apply(request);
});
}
}
你错过了那个甜蜜而迅速的工程技能伙伴