当前位置: 首页 > 知识库问答 >
问题:

Spring网络流量Http响应

景俊语
2023-03-14
class Test{
    public Mono<ServerResponse> test(ServerRequest req){
        Mono<String> data = Mono.just("test");
        System.out.print(data);
        return ServerResponse.ok.body(data, String.class);
    }
}

当客户端发出请求时,“MonoJust”会打印在第4行,但“test”会在Http响应正文中返回。我知道发布者在订阅之前不会生成数据,那么为什么Http响应包含“test”而不是“MonoJust”?

共有1个答案

锺离烈
2023-03-14

这种行为可能看起来有点奇怪,因为您刚刚使用了Mono来包装实际值,但这不是reactor(以及一般的反应式框架)的设计目的。

请记住,Mono是一个发布者,将来可能会或不会发布元素,而不仅仅是一个给定值的包装器。返回ServerResponse时。好啊body(),您明确表示希望body包含您传入的发布者发出的结果-该方法然后返回另一个发布者,Mono

<代码>系统。出来另一方面,print在Mono上隐式调用toString()方法,该方法现在需要生成一个值,而不需要阻塞或等待(它返回的是字符串,而不是Mono

 类似资料:
  • 我目前正在使用自定义JWT身份验证进行SpringCloudGateway。身份验证后,我希望使用GlobalFilter将标头中的JWT令牌字符串传递到下游服务: JWT令牌字符串可以通过调用主体来获得。getName(); 我的问题是:我如何实现

  • 本文我们将看看如何分析iOS设备上的网络流量。分析应用的网络流量会带来几个方面的好处。它可以帮助我们推断应用是如何管理用户会话的,我们应用调用的另一方是谁,以及应用程序内部是如何工作的等等。我们也会看看如何分析使用SSL的网络流量。 监听网络流量有主动和被动两种方式。如果你对远程分析一个网络中的特定设备的流量感兴趣,那你需要wireshark这个工具。打开Wireshark,开始嗅探网络,添加一个

  • 问题内容: 我正在使用pythonDjango创建一个Web应用程序。我正在使用selenium来启动无头浏览器(phantomjs)并单击几次,直到到达特定页面。我希望捕获网络流量并获得特定网络呼叫的响应。该网络调用实际上包含一个html文档作为其响应。 有什么办法可以做到这一点? 问题答案: 您可以访问浏览器或chromedriver日志,它们在网络响应方面略有不同。称为浏览器日志,称为驱动程

  • 问题内容: 我可以在Java监视程序上创建网络流量吗?该程序必须控制从计算机程序(包括OS模块)到网络驱动程序再返回的所有网络流量。如果是,如何? 注意: 我不仅要监视流量,还要对其进行控制。我想在Windows NT上实现这样的系统。仅靠Java无法实现它。如何在JNI的帮助下执行它? 也许是另一个变体。我不熟悉Windows服务,但仍然如此。我将在C 上编写一个程序并将其注册为Windows服

  • 所以我有一个简单的方法 我想让我的系统不断地流媒体。现在我用老办法做到了 我很确定这不是反应式方法的最佳方法。如何在项目Reactor中实现连续发射器?

  • 问题内容: 我们正在将Selenium与Java API和一些Javascript用户扩展一起使用。我们在应用程序中使用了很多AJAX调用。我们的许多测试都是随机失败的,因为有时AJAX调用的完成速度比其他时间慢,因此页面未完全加载。我们通过等待特定元素或Thread.sleep来解决此问题。我试图找到一种方法来代替等待网络流量完成。这样我们就可以做到这一点: 这样,我们可以摆脱线程hiberna