为什么无法在reactor-netty中订阅请求?

Why can't subscribe the request in reactor-netty?

我只想访问reactor-netty 项目中的Http 内容。但是结果是null.

代码如下。

DisposableServer server =
            HttpServer.create()
                    .host("localhost")
                    .port(8000)
                    .route(routes ->
                                    .post("/echo",
                                            (request, response) -> 
                                                {   request.receive()
                                                        .retain()
                                                        .aggregate()
                                                        .asString()
                                                        .subscribe(System.out::println);
                                                    return response.sendString(Mono.just("hello"));})          
                    .bindNow();

我无法在控制台中获取结果。

我可以像在代码中那样访问请求吗? 任何人都可以帮忙吗?谢谢

您 return 在接收到请求数据之前进行响应,因此 Reactor Netty 将丢弃在发送响应后接收到的任何传入数据。

我不知道你的用例,但将示例更改为下面的这个,你将能够看到传入的数据:

DisposableServer server =
        HttpServer.create()
                .host("localhost")
                .port(8000)
                .route(routes ->
                        routes.post("/echo",
                                (request, response) ->
                                        response.sendString(request.receive()
                                                .retain()
                                                .aggregate()
                                                .asString()
                                                .flatMap(s -> {
                                                    System.out.println(s);
                                                    return Mono.just("hello");
                                                })))
                )
                .bindNow();