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

是否可以将流量传递到webClient Post的正文?

司徒捷
2023-03-14
@PostMapping("/products")
Flux<Product> getProducts(@RequestBody Flux<String> ids) {
    return Flux...
}

在客户端,我想使用这个endpoint,但不确定如何在主体中传递字符串流(我不想将其设置为列表)

Flux<Product> getProducts(Flux<String> ids) {
  return webClient.post().uri("/products")
      .body(/* .. how should I do here? ..*/)
      .retrieve()
      .bodyToFlux(Product.class);
}

共有1个答案

桓宜
2023-03-14

实际上,您可以在WebClient上的.body()方法中传递一个流量

Flux<Person> personFlux = ... ;

Mono<Void> result = client.post()
        .uri("/persons/{id}", id)
        .contentType(MediaType.APPLICATION_STREAM_JSON)
        .body(personFlux, Person.class)
        .retrieve()
        .bodyToMono(Void.class);

示例摘自Spring参考文档

您要使用的body()方法的变体是:

<T,P extends org.reactivestreams.Publisher<T>> WebClient.RequestHeadersSpec<?> body(P publisher,
                                                                                    Class<T> elementClass)
 类似资料:
  • 问题内容: 与在或中使用的方式类似: 问题答案: 是。 如果你不理会关键字参数,这很简单并且可以工作: 如你所见,Python将为你提供一个包含所有参数的元组。 对于关键字参数,你需要将其作为单独的实际参数接受,如的所示。

  • 问题内容: 我想做这样的事情: 但是我得到这个错误 对成员’init()’的不明确引用 我知道我可以写 但是我想知道是否还有另一种方式。 问题答案: 问题在于不存在 仅 具有参数的初始化程序。 __ 目前只存在: 尽管该参数具有默认值,但是编译器仅在初始化程序的调用位置为您“填充”该默认值。 获取对函数本身的引用时,不会部分应用默认参数值,编译器也不会为默认参数值的所有可能组合生成额外的重载。后者

  • 问题内容: 很多人说评论中的要求太多,这让我犹豫不决,但是我仍然没有在他们的答案中找到解决方案,主要是因为(1)他们通常使用jQuery,而(2)问题通常包含我不理解的技术。 我有一个函数,里面有一个变量。变量被分配了一个功能。我敢肯定,这个概念不是AJAX独有的,但这是我正在使用的上下文(如果有区别的话)。 我想将变量传递给函数。但是,由于没有原始函数声明,如何指定参数?我能做到吗? 问题答案:

  • 是否可以将ID与结帐请求一起传递给Stripe,使其能够ping回以允许我查找订单并生成下载链接?

  • 问题内容: 我有一个带有一些componentDidMount逻辑的React组件: 是否可以通过props传递此组件,以便componentDidMount()中的所有内容都被执行,以某种方式伪造以便截取屏幕截图?遵循以下原则: 我知道我可以使用,但是我有一些复杂的登录逻辑,我想使用这样的快捷方式来避免,而是将所有需要的道具直接传递给组件? 问题答案: 在这里回答了这个问题。让我们在这里尝试相同

  • 问题内容: TL; DR给出以下示例代码: 是否可以手动将React传递到的实例? 考虑到React的性质,我知道这听起来像一个奇怪的问题,但是用例是我将React与语义UI(SUI)混合在一起,并且这种特定情况是延迟加载SUI工具提示的内容(该工具提示的内容是首次显示工具提示时,使用与上述相同的代码模式生成一个React组件。因此,这不是由另一个React组件隐式创建的React组件,它似乎断了