我一直在研究Reactive Programming,最近尝试用Spring WebFlux构建POC。我想从简单开始,仅使用WebClient下载图像;特别是https://greatatmosphere.files.wordpress.com/2013/02/great-atmosphere-149-tenaya-lake-yosemite-national-park-2.jpg
我尝试了以下代码
String block = WebClient.create("https://greatatmosphere.files.wordpress.com/2013/02/great-atmosphere-149-tenaya-lake-yosemite-national-park-2.jpg")
.get()
.accept(MediaType.IMAGE_JPEG)
.retrieve()
.bodyToMono(String.class)
.doOnError(WebClientResponseException.class,
ex -> System.out.println(ex.getStatusCode() + ": " + ex.getResponseBodyAsString()))
.log()
.block();
System.out.println("output:" + block);
,但无法正常工作。似乎数据一直在被流式传输,并且get请求不会终止。
我可以肯定我缺少一些简单的东西,但是似乎无法弄清楚。我尝试了各种参数,但结果是相同的。
如何使用WebClient下载图像然后终止?
答案 0 :(得分:0)
将图像捕获为byte[]
而不是String
byte[] image = WebClient.create("https://greatatmosphere.files.wordpress.com/2013/02/great-atmosphere-149-tenaya-lake-yosemite-national-park-2.jpg")
.get()
.accept(MediaType.IMAGE_JPEG)
.retrieve()
.bodyToMono(byte[].class)
.block();