How to HTTP POST a Flux<String> as a JSON array using Spring's WebClient?

heez :

How do I use Spring's reactive WebClient to POST a Flux<String> as a JSON array?

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();

This sends the request, but it's not sending it as a JSON array of strings.

I saw that there's another body() signature that accepts a ParameterizedTypeReference, so I tried this:

.body(stringFlux.collectList(), new ParameterizedTypeReference<>() {})

but this results in a compile error actually (I'm on Java 11):

Error:java: com.sun.tools.javac.code.Types$FunctionDescriptorLookupError.

Any ideas?

heez :

Well I'll be darned. I got it working using ParameterizedTypeReference. As is usually the case, the compile error sums it up. I omitted the type parameter when declaring a new ParameterizedTypeReference<>() {}. Providing the type did the trick and posted my Flux<String> as a JSON array:

.body(stringFlux.collectList(), new ParameterizedTypeReference<List<String>>() {})

IntelliJ was telling me this type was inferred, but apparently it is not.

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

How to get a json field by name using Spring WebClient?

Возвращение Flux <String> из Spring WebFlux возвращает одну строку вместо массива строк в JSON

Spring WebFlux, как я могу отлаживать обмен WebClient POST?

Как перехватить http-трафик в Spring WebClient?

Spring WebClient - Customized обратного ответа на состояние ошибки HTTP

Отправьте http-запрос через определенный сетевой интерфейс с помощью Spring WebClient

C # WebClient загружает JSON в запрос POST

HTTP POST с использованием JSON в Spring Rest

HTTP POST с использованием JSON в Spring Rest

Spring WebClient без springboot-starter-web-flux

Spring 5 Web Reactive - Как мы можем использовать WebClient для извлечения потоковых данных в Flux?

Spring Web Flux - WebClient - exchange - block - как освободить соединение с пулом соединений?

Могу ли я использовать метод block () для Flux, возвращенный из Spring5 WebClient?

Spring WebClient поставил Mapping: Тип содержимого «приложения / JSON» не поддерживается

Spring WebClient фильтр Null из запроса Json

Spring WebClient и jsonPath - как вывести результат json в случае сбоя теста

Как получить ответ json от Spring WebClient

Как создать Spring Reactor Flux из потока интеграции Http?

Как выполнить итерацию в Webclient Flux и заменить какое-либо значение

Генерация страничных запросов WebClient и получение ответа в Flux

Как я могу поддерживать HTTP-прокси с помощью Spring 5 WebClient?

Странное поведение Spring WebFluxTest при использовании Flux <String> в качестве ответа

Поведение Spring WebFlux Flux с не потоковом приложения / JSON

Как распечатать необработанный HTTP-запрос и HTTP-ответ с помощью Spring 5 Webclient?

как Spring WebClient может получать данные потока с сервера Spring WebFlux, который использует http / 1.1

How to Return Flux as response when using Spring Reactor and Spring Boot?

Scatter & Gather using Spring Webclient

Post a JSON Array into Spring Boot RestController

POST-запрос в WebClient в Spring Boot и получение ответа в виде JSONObject

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  3. 3

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  4. 4

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  5. 5

    How to click an array of links in puppeteer?

  6. 6

    Merging legends in plotly subplot

  7. 7

    ViewPager2 мигает / перезагружается при смахивании

  8. 8

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  9. 9

    How to normalize different curves drawn with geom = "step" when using stat_summary

  10. 10

    无法通过Vue在传单中加载pixiOverlay

  11. 11

    как я могу удалить vue cli 2?

  12. 12

    Как я могу нарисовать заполненный прямоугольник в JFreeChart?

  13. 13

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  14. 14

    Elasticsearch - Нечеткий поиск не дает предложения

  15. 15

    Single legend for Plotly subplot for line plots created from two data frames in R

  16. 16

    Описание моего типа Parser как серии преобразователей монад

  17. 17

    Как изменить цвета запятых и скобок в VS Code

  18. 18

    Сброс значения <input type = "time"> в Firefox

  19. 19

    Почему прокси в vue.config.js 404

  20. 20

    Как установить параметр -noverify с gradle ktx для робоэлектрических тестов Android?

  21. 21

    В чем разница между ifstream, ofstream и fstream?

популярныйтег

файл