我正在直接致电Restful Web服务。我从使用Spring 5异步Webclient开始。不幸的是,该调用不会返回数据。当我改用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是否不能在同步代码上工作。我原本希望使用WebClient,但是很难理解正在发生的事情。我也用Flux代替Mono,但还是没有成功。我尝试了exchange()等,但仍然无法返回数据。请帮忙。如果我在订阅后放置一个不确定的块,则它可以工作。
result.block()