feign在用ResponseEntity<InputStreamResource>下载文件处理后需要关闭outputstream吗 在哪里关的.

发布于 2022-01-05 09:18:13 字数 1207 浏览 681 评论 0

@wangJunBlog 你好,想跟你请教个问题:

@GetMapping(value = "/v1/orders/{orderId}/flow-chart", produces = MediaType.IMAGE_PNG_VALUE) @ResponseStatus(HttpStatus.NO_CONTENT) public void getGraphics(@PathVariable Long orderId, HttpServletResponse response) { Response.Body feignResponse = GraphicsClient.getGraphics(orderId); try (InputStream inputStream = feignResponse.asInputStream(); ServletOutputStream outputStream = response.getOutputStream()) { response.setContentType("image/png"); outputStream.write(IOUtils.toByteArray(inputStream)); } catch (Exception e) { throw new ClientException("get credit-order graphics fail :{} ", e); } }

这里feign 处理完成 finally是不是 不用关闭outputStream  和 inputstream   

我用的是

return  ResponseEntity<InputStreamResource> resultEntity =  ResponseEntity.ok().contentType(MediaType.APPLICATION_OCTET_STREAM).headers(httpHeaders)
                    .body(inputstreamResource);

finally块 我关闭了inputstream报错了,文件下载的时候不是需要 关闭outputstream 和 inputstream吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文