Spring Cloud 下载Excel 的问题小结(乱码和超时)

      公司的管理后台有一个需求,可以根据页面上的输入筛选一些数据,然后下载成excel。面对一个这样的需求,我觉得并不复杂,毕竟已经有封装好的工具类了。在本地测试的时候,我发现自己在swagger上是可以看到生成的excel 的,保存到本地查看,里面完全是乱码的,:(  第一反应还是查看自己的编码格式,除了文件名字用了iso8859-1之外,其他全部都是使用的utf-8格式,我觉得应该不会乱码才对。把编码格式设置为iso8859-1 再试试,问题依然存在。查看了别人的导出excel的代码,发现通过swagger下载的文件还是乱码。

       无奈之下,使用了Rest Client 试了试,居然成功的下载了文件,而且打开的时候是没有乱码的。要不用PostMan也试试,发现请求成功了,后端的日志也都是正常的,但是并没有看到有文件可以下载诶。查看了PostMan的使用方法,不能使用send 按钮,应该使用Send and Download 按钮,然后成功的下载了excel 文件,并且没有乱码。

      在真正和前端开发人员对接的时候,又出现了新的问题。 后端生成文档速度太慢,系统的网关可能会超时。 想让网关不超时其实也很简单。第一、让查询尽可能的快,比如通过搜索引擎,而不是通过MYSQL和调用其他服务的接口; 第二、把下载文档的接口写成异步的,前端第一次只是触发生成文档,然后每1分钟来轮询一次,如果没有生成,那么前端继续轮询;如果已经生成了,就把文档上传到OSS,然后返回一个文档的链接。  瞎眼可见的是,用第一种方法会更合理一些,但是考虑到实际的情况,我们使用了第二种: (  终于还是艰难的解决了这个小问题。

     总结:

       第一、在Swagger上生成excel乱码不一定是代码的问题,有可能是Swagger 的配置问题。

       第二、使用RestClinet 和PostMan 可以更好的支持测试restful 接口。

       第三、PostMan 下载附件应该使用Send and Download 按钮,不是Send 按钮。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值