您的位置:首页 > 编程语言 > Java开发

SpringCloud 通过Feign 调用其他服务下载文件

2018-09-04 17:24 597 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nanqu2090/article/details/82387000

 SpringCloud 微服务中 通过Feign 调用文件下载接口 下载文件 不能使用 HttpServletResponse 接受文件流.

 1. 使用 feign.Response, 调用完远程接口后,再获取处理返回的文件流

 2. 使用ResponseEntity<byte[]> 来传送文件流

 a. 远程文件下载接口

[code]
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. 服务调用方直接返回

[code] @GetMapping("/download/file")
public ResponseEntity<byte[]> downloadExcelFiles( ... some params){
return  直接调用远程下载方法;
}

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: