ali*_*992 6 java spring outputstream spring-boot spring-cloud-netflix
我有一个大文件下载,该文件由一台服务器上的RestController提供服务,我需要流经另一台服务器上的RestController。直接调用最终服务器时,结果流很好。但是,当使用RestTemplate调用此服务器,然后将响应写入到OutputStream时,响应将在前端服务器上缓冲,直到整个文件准备就绪,然后进行流式处理。有什么办法可以将文件写入到OutputStream中吗?
目前,我在前端服务器上的代码与此类似
@ResponseBody
public void downloadResults(HttpServletRequest request, HttpServletResponse response, @RequestParam("id") String jobId, OutputStream stream)
throws IOException
{
byte[] data = restTemplate.exchange("http://localhost/getFile", HttpMethod.POST, requestEntity, byte[].class, parameters).getBody();
stream.write(data);
}
Run Code Online (Sandbox Code Playgroud)
我已经将RestTemplate设置为不缓冲,并且通过检查所使用的请求类型(SimpleStreamingClientHttpRequest)验证了此模板是否正常工作。数据全部恢复正确,它只是一次全部写入流中,而不是直接写入
| 归档时间: |
|
| 查看次数: |
1660 次 |
| 最近记录: |