使用 WebFlux 时如何使用 HTTP DELETE 发送正文?

Eth*_*roy 9 java spring http spring-webflux

我想访问一个提供DELETE端点的 HTTP API 。这个特定的端点需要一个项目列表(我想删除)作为 JSON 正文。

现在,我的问题是,我正在使用 Spring Webflux。但它的WebClient没有给我发送DELETE请求的可能性。对于 a POST,我会这样做:

webClient.post()
         .uri("/foo/bar")
         .body(...)
         .exchange()
Run Code Online (Sandbox Code Playgroud)

但是对于DELETE,我得到了一个RequestHeadersSpec,它没有给我提供以下选项的选项body(...)

webClient.delete()
         .uri("/foo/bar")
         .body(...)       <--- METHOD DOES NOT EXIST
         .exchange()
Run Code Online (Sandbox Code Playgroud)

那么,在客户端使用 Spring Webflux 实现这一目标的方法是什么?

Nip*_*nga 14

您可以使用 webClient 的method()运算符。简单的例子,

return webClient
        .method(HttpMethod.DELETE)
        .uri("/delete")
        .body(BodyInserters.fromProducer(Mono.just(new JSONObject().put("body","stringBody").toString()), String.class))
        .exchange() 
Run Code Online (Sandbox Code Playgroud)