1

我创建了一个端点,它应该提供一个文件供下载。端点本身必须从另一个外部 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?
4

0 回答 0