Spring Cloud Feign接口返回流的实现

服务提供者

@GetMapping("/{id}")
  public void queryJobInfoLogDetail(@PathVariable("id") Long id, HttpServletResponse response) {

    File file = new File("xxxxx");
    InputStream fileInputStream = new FileInputStream(file);
    OutputStream outStream;
    try {
      outStream = response.getOutputStream();

      byte[] bytes = new byte[1024];
      int len = 0;
      while ((len = fileInputStream.read(bytes)) != -1) {
        outStream.write(bytes, 0, len);
      }
      fileInputStream.close();
      outStream.close();
      outStream.flush();
    } catch (IOException e) {
      log.error("exception", e);
    }
  }

client 客户端

@GetMapping(value = "/{id}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
  feign.Response queryJobInfoLogDetail(@PathVariable("id") Long id);

服务消费者

  @GetMapping("/{id}")
  public void queryJobInfoLogInfoList(@PathVariable("id") Long id, HttpServletResponse servletResponse) {

    Response response = apiServices.queryJobInfoLogDetail(id);
    Response.Body body = response.body();

    InputStream fileInputStream = null;
    OutputStream outStream;
    try {
      fileInputStream = body.asInputStream();
      outStream = servletResponse.getOutputStream();

      byte[] bytes = new byte[1024];
      int len = 0;
      while ((len = fileInputStream.read(bytes)) != -1) {
        outStream.write(bytes, 0, len);
      }
      fileInputStream.close();
      outStream.close();
      outStream.flush();
    } catch (Exception e) {

    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。