Я новичок в Spring и даже новичок в WebClient. Я хочу отфильтровать тело ответа Get несколько раз с интервалом в одну секунду в течение 2 минут с помощью Springs WebClient. Я выполняю запрос на получение, который возвращает пустой список JSON строк. В какой-то момент тело будет заполнено, и я хочу вернуть этот список строк. Я хочу отфильтровать ответ таким образом, чтобы, когда он пуст, он продолжал выполнять запрос до тех пор, пока он не будет заполнен и не вернет желаемый результат.
private List<String> checkUser() {
List<String> ibanList = new ArrayList<>();
ExchangeFilterFunction filter = ExchangeFilterFunction.ofResponseProcessor(clientResponse -> {
if (clientResponse.body())
//something here
});
Optional<Account[]> accountsOptional = webClient.get()
.uri("example.com")
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(Account[].class)
.delaySubscription(Duration.ofSeconds(1))
.retry()
.filter(filter)
.blockOptional(Duration.ofMinutes(2));
if (accountsOptional.isPresent()) {
for (Account account : accountsOptional.get()) {
ibanList.add(account.getIban());
}
return ibanList;
}
return null;
}
Кто-нибудь знает, как это сделать? Любая помощь будет принята с благодарностью.