Spring5 — Reactor API — Отправка последовательных запросов и получение ответов в виде строки

#spring #request #reactive #sequential

#spring #запрос #реактивный #последовательный

Вопрос:

Я отправляю последовательный запрос и пытаюсь напечатать ответ в виде строки:

   Flux.fromIterable(keywordsList).map(i -> client.get()
              .uri("/hello?now-word="   i)
              .accept(MediaType.APPLICATION_JSON)
              .retrieve()
              .bodyToMono(String.class))
              .subscribe(item -> System.out.println("item: "   item.toString()));
  

Но это то, что я получаю:

   item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  item: MonoFlatMap
  

Я пытался использовать FlatMapIterable, но я не знаю, как правильно его использовать.

Ответ №1:

На данный момент я отправляю запросы в цикле. Вот код, и это работает для меня:

   for(int i = 3; i <= len; i  ) {
        String searchStr = searchString.substring(0, i);

        Mono<ClientResponse> result = client.get()
                .uri(autocompleteUri   searchString)
                .accept(MediaType.APPLICATION_JSON)
                .exchange();

        String result1 = ">> result = "   result.flatMap(res -> res.bodyToMono(String.class)).block();


    }
  

Но я хотел бы знать, какими различными способами мы можем это сделать. Вот блог об этом проекте:

Блог