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

通过springs'WebClient'进行api调用,但忽略结果的正确方法是什么?

秦宏硕
2023-03-14

注意:当通过WebClient exchange()方法获得对ClientResponse的访问权限时,必须始终使用body或toEntity方法之一,以确保释放资源并避免HTTP连接池的潜在问题。如果不需要响应内容,可以使用bodyToMono(void.class)。但是,请记住,如果响应确实有内容,连接将被关闭,并且不会被放回池中。

我可以调用WebClient并忽略结果吗?或者是否有一个通用的catch all“body或toEntity方法”,我可以使用然后忽略它?

共有1个答案

吉泰宁
2023-03-14

在Spring Framework 5.2之前,使用WebClient#Exchange()方法并直接处理mono 可能非常复杂,或者导致潜在的内存泄漏。

从Spring Framework 5.2开始,这对于开发人员来说已经变得更加容易了,exchange()方法已经被废弃。

Mono<ResponseEntity<Void>> response = webClient.put()
     .uri("https://example.org/book/123")
     .retrieve()
     .toBodilessEntity();

Spring将读取响应主体(如果存在)并释放数据缓冲区,然后将连接返回到池中。它确保没有内存泄漏,包括当使用额外的Reactor操作员时。

 类似资料:
  • 问题内容: 我最近从Angular转到了ReactJs。我正在使用jQuery进行API调用。我有一个API,该API返回要打印在列表中的随机用户列表。 我不确定如何编写我的API调用。最佳做法是什么? 我尝试了以下操作,但未得到任何输出。如果需要,我愿意实现替代API库。 下面是我的代码: 问题答案: 在这种情况下,您可以在中进行ajax调用,然后进行更新

  • 问题内容: 据我所知,可以在一个单元内进行调试。 但是,我有多个单元格之间的函数调用。 例如, 我试过的 我试图在cell-1的第一行中设置。但是它甚至在执行单元2之前就立即进入调试模式。 我试图在代码之前添加该行。但是,代码永远运行,永不停止。 在ipython笔记本中设置断点的正确方法是什么? 问题答案: 使用 ipdb 通过安装 用法: 用于逐行执行和进入函数使用,并退出调试提示使用。 有关

  • 但是这是RXJS5中的惯用方法吗,还是我们应该做其他的事情呢? 注意:根据Angular 5 new,所有示例中的部分现在都是无用的,因为现在默认情况下假定了JSON结果。

  • 因此,我试图找出每个月(本例中为6月至7月)销售额变化最大的客户。 以下是我为了这个实践而创建的模型数据: 根据以上两个表,答案应该是CustomerID为10的客户,1998年6月至7月销售额增加350.28。 下面是我实现目标的代码;基本上,我创建了两个视图,一个是每年每个客户6月份的销售额总和,另一个是每年每个客户7月份的销售额总和,然后从7月份的销售额中减去6月份的销售额: 但是,我的输出

  • 我使用的是JMockit1.1,我所要做的就是调用一个私有方法并测试返回值。然而,我很难从JMockit去封装示例中准确理解如何做到这一点。