首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Webflux WebFilter中,如何识别入站HTTP请求是否有主体

在Webflux WebFilter中,如何识别入站HTTP请求是否有主体
EN

Stack Overflow用户
提问于 2022-11-28 09:03:00
回答 1查看 59关注 0票数 0

在WebFilter中,如何识别入站HTTP请求是否有主体?我知道内容长度的标题是否存在检查,但这是一个最好的黑客。此外,它不会捕获所有的情况(一些客户端发送的主体没有内容长度标题)。

注:我只需要确定身体是否在那里,阅读身体是一个完全不同的问题!

服务器是netty,如果这有帮助的话

EN

Stack Overflow用户

发布于 2022-12-04 19:16:01

要检查入站HTTP请求是否有主体,您可以使用Web通量框架提供的HttpRequest.getBody()方法。如果请求没有主体,此方法将返回空的Flux;如果请求体有,则返回包含请求主体的Flux。下面是如何使用此方法的示例:

代码语言:javascript
运行
复制
    public class MyWebFilter implements WebFilter {
  public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
    HttpRequest request = exchange.getRequest();
    Flux<DataBuffer> body = request.getBody();
    
    // Check if the request has a body
    if (body == null || body.count().block() == 0) {
      // The request has no body
    } else {
      // The request has a body
    }
  }
}

这种方法比检查内容长度标头的存在更可靠,因为它直接检查请求主体本身,而不是依赖可能不可靠的头。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74598220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档