Как отправить тело с HTTP DELETE при использовании WebFlux? - PullRequest
2 голосов
/ 20 февраля 2020

Я хочу получить доступ к HTTP API, который обеспечивает конечную точку DELETE. Эта конкретная конечная точка ожидает список элементов (которые я хочу удалить) в виде JSON body.

Теперь моя проблема в том, что я использую Spring Webflux. Но его WebClient не дает мне возможности отправить тело с запросом DELETE. Для POST я бы сделал это:

webClient.post()
         .uri("/foo/bar")
         .body(...)
         .exchange()

Но для DELETE я получу RequestHeadersSpe c, который не дает мне возможности предоставить a body(...):

webClient.delete()
         .uri("/foo/bar")
         .body(...)       <--- METHOD DOES NOT EXIST
         .exchange()

Итак, как это можно сделать с помощью Spring Webflux на стороне клиента?

1 Ответ

2 голосов
/ 20 февраля 2020

Вы можете использовать оператор method() webClient. Простой пример,

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