有没有办法找出ServerRequest是否具有主体?

时间:2019-11-25 10:42:57

标签: spring-webflux reactor

我想检查this.comments = allComments; 是否包含正文。

是否可以找出事先调用ServerRequest方法的方法?

2 个答案:

答案 0 :(得分:1)

假设客户端确实发送了相应的标头,则可以通过如下检查content-length标头来实现:

request.headers().contentLength().orElseGet(0) > 0

您可以直接在处理程序中,也可以在过滤器中

答案 1 :(得分:-1)

您可以在服务器请求实例中使用.body(BodyExtracter)方法

如果正文包含数据,要转换为具有Mono<Boolean>值的true,请使用

Mono<Boolean> bodyContains = request.body((serverHttpRequest, context) -> serverHttpRequest
    .getBody()
    .collectList()
    .map(List::isEmpty));