SpringCloud 通过Feign 调用其他服务下载文件
SpringCloud 微服务中 通过Feign 调用文件下载接口 下载文件 不能使用 HttpServletResponse 接受文件流. 1. 使用 feign.Response, 调用完远程接口后,再获取处理返回的文件流 2. 使用ResponseEntity<byte[]> 来传送文件流 a. 远程文件下载接口ResponseEntity&...
·
SpringCloud 微服务中 通过Feign 调用文件下载接口 下载文件 不能使用 HttpServletResponse 接受文件流.
1. 使用 feign.Response, 调用完远程接口后,再获取处理返回的文件流
2. 使用ResponseEntity<byte[]> 来传送文件流
a. 远程文件下载接口
ResponseEntity<byte[]> entity = null;
HttpHeaders headers = new HttpHeaders();
//读取文件字节数组
byte[] res = testService.testMethod(...param);
headers.add("Content-Type", "application/octet-stream");
headers.add("Connection", "close");
headers.add("Accept-Ranges", "bytes");
headers.add("Content-Disposition",
"attachment;filename=" + new String(file_name.getBytes("GB2312"), "ISO8859-1"));
...一些业务操作
//将文件字节数组,header,状态码封装到ResponseEntity
entity = new ResponseEntity<byte[]>(res, headers, HttpStatus.OK);
return entity
b. 服务调用方直接返回
@GetMapping("/download/file")
public ResponseEntity<byte[]> downloadExcelFiles( ... some params){
return 直接调用远程下载方法;
}
更多推荐
已为社区贡献1条内容
所有评论(0)