我创建了一个端点,它应该提供一个文件供下载。端点本身必须从另一个外部 Web 端点获取下载文件。因此,我的端点是某种下载代理。
由于不必将整个文件读入我的内存(因为文件可能非常大),我想直接将它们写入我的端点用户的响应流中。
如果我使用RestTemplate
,我可以按如下方式实现:
@RequestMapping(value = "/download")
public void download(HttpServletResponse response) {
RestTemplate restTemplate = new RestTemplate();
response.setStatus(HttpStatus.OK.value());
restTemplate.execute(
fileToDownloadUri,
HttpMethod.GET,
null,
responseExtractor -> {
IOUtils.copy(responseExtractor.getBody(), response.getOutputStream());
return null;
});
}
但是:我想使用这个WebClient
类。我怎么能做到这一点?
webClient.get().uri(fileToDownloadUri). //what now?