问题描述

  • A服务(服务提供者)提供文件下载接口
  • B服务(服务消费者)通过Feign请求拿到文件

    服务提供者A

    1. @GetMapping(value = "/file/{fileName}")
    2. public void downFile(@PathVariable("fileName") String fileName, HttpServletResponse response) {
    3. // 返回一个文件流
    4. }

服务消费者B

  • Feign客户端

    1. @FeignClient("consume-file")
    2. public interface FileFeignClient {
    3. @GetMapping(value = "/file/{fileName}")
    4. Response downFile(@PathVariable("fileName") String fileName);
    5. }
  • 响应给前端 ```java private final FileFeignClient fileFeignClient;

@GetMapping(value = “down/{fileName}”) public void down(@PathVariable(“fileName”) String fileName, HttpServletResponse response){ Response responseFile = fileFeignClient.downFile(fileName); InputStream inputStream = responseFile.body().asInputStream(); // TODO设置响应头及响应文件名称

  1. IOUtils.copy(inputStream,response.getOutputStream());

} ```