将对象列表设置为请求正文:Spring WebClient

Posted

技术标签:

【中文标题】将对象列表设置为请求正文:Spring WebClient【英文标题】:Set a list of objects as a request body: Spring WebClient 【发布时间】:2021-12-21 04:51:27 【问题描述】:

我正在构建 Spring/MongoDB RESTful Web 服务,我想使用 Spring WebClient 将对象列表(mongoDB 模型)设置为 POST 请求的主体:

public void postProducts(List<Product> products) 
        return this.webClient.post(
                .uri("/products")
                .body(Mono.just(products), Product.class)
                .retrieve();

然而,

.body(Mono.just(products), Products.class)

将对象列表 (List-Product-) 设置为请求正文的方式是错误的。

您会提出正确的做法吗? 我会很感激你的回答:)

【问题讨论】:

请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:

试试:

public void postProducts(List<Product> products) 
    this.webClient.post(
            .uri("/products")
            .body(Mono.just(products), new ParameterizedTypeReference<List<Product>>() )
            .retrieve();

【讨论】:

以上是关于将对象列表设置为请求正文:Spring WebClient的主要内容,如果未能解决你的问题,请参考以下文章

没有请求正文的对象的 Spring Boot RestClient 发布导致错误请求

Spring注解@ResponseBody,@RequestBody

Spring WebFlux WebClient 构建器设置请求正文

AJAX 请求正文为空(无 jQuery)

使用Spring-Data-JPA进行Spring启动:每次请求时都会填充ArrayList / JSON对象

如何在请求正文中设置对象名称以在 Ios 中解析 json