Я очень прямо звоню в веб-службу Restful. Я начал с использования Spring 5 асинхронного веб-клиента. К сожалению, этот вызов не возвращает данные. Когда я использую RestTemplate вместо этого, данные возвращаются. Вот код кода Webclient, я ожидаю строку JSON:
WebClient webClient = WebClient.create("http://localhost/current/jobs")
Mono<String> result= webClient.get()
.retrieve()
.bodyToMono(String.class)
result.block(Duration.ofSeconds(5L))
result.subscribe{it -> println "Data is ${it}"}
Этот код, с другой стороны, успешно извлекает данные:
RestTemplate rt=new RestTemplate()
Object obj= rt.getForObject("http://localhost/current/jobs", String.class)
Веб-клиент не работает с синхронным кодом. Я надеялся использовать WebClient, но трудно понять, что происходит. Я также заменил Mono на Flux, но все равно не добился успеха. Я попытался обмен () и т. Д., Но по-прежнему не удалось вернуть данные. Пожалуйста помоги. Если я ставлю неопределенный блок, как после подписки, это работает.
result.block()