Как мне использовать реактив WebClient
Spring для POST Flux<String>
в качестве массива JSON?
Flux<String> stringFlux = Flux.fromIterable(objects).map(MyObject::getSomeString);
WebClient.create(baseUrl)
.post()
.uri(myUrl)
.contentType(MediaType.APPLICATION_JSON)
.body(stringFlux, String.class)
.exchange()
.flatMap(response -> {
if (response.statusCode().is2xxSuccessful()) {
// Do something
}
return response.bodyToMono(Void.class);
})
.block();
Это отправляет запрос, но не отправляет его как массив строк JSON.
Я увидел, что есть другая body()
подпись, которая принимает ParameterizedTypeReference
, поэтому я попробовал это:
.body(stringFlux.collectList(), new ParameterizedTypeReference<>() {})
но на самом деле это приводит к ошибке компиляции (я на Java 11):
Error:java: com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
.
Есть идеи?