背景:今天因为生产环境的系统界面图片无法显示被领导叼了一波,之前用Hutool工具类解析URL获取图片的,在生产环境上跑了一个多月都正常,嘣,今天突然发现周六下午后的图片统统显示异常,之后改为用java原始HttpConnection的方式解析URL获取图片OK。

简单的说下项目的业务逻辑&我当事人的想法:

1、首先,这个URL图片地址是项目上游合作伙伴通过消息队列发送给我的,然后我再把URL转为base64,接着把转好的base64上传到一个文件存储服务器中,这时可以通过Key和Object的组合从文件服务器中下载以上传的图片,然后就利用WebSocket推送Key和Object的值给前端请求展示图片;

2、为什么我要用Hutool工具类呢?因为用它把URL转换为base64就一行代码搞定,两行算我输;

3、为什么之前用Hutoo可以,过了一个多月就突然凉凉了呢?这也是我蛋疼的地方,为了保密一些,下面URL部分是假的;

之前合作伙伴给我提供的URL格式如:image_url:https://xxxxxx.com:666/xxxxxxxx/xxxx/xxpic/xxxxxxxxxx

如今合作伙伴给我提供的URL格式如:image_url:https://xxxxxx.com:666/xxxxxxxx/xxxx/xxpic/xxxxxxxxxx?AWSAccessKeyId=XXXXX&Expires=xxxx&Signature=xxxxx

小老弟们一看就知道现在的URL增加了签名和失效时间等信息,然后我那Hutool就玩不动了(求大神指导)。

4、虽然上游的合作伙伴没有提前告知我他们给我的URL格式内容变了,但这也不能怪他们,因为他们提供的这个地址在浏览器中访问的的确确可以得到一串base64字节码,并且这串base64也可以在浏览器正常转化为图片显示,最重要的是用HttpConnection解析该URL结果也OK,那么八成就是我代码的问题了;

5、虽然这个问题算是我的锅,但是被痛叼了一波,还是有点不服,奈何外包公司就是这样“没能力好好干,有能力给我滚蛋”!过完春节不辞职算我输(求收留)。

FYI:

如图所示,Java本身提供的原始HttpURLConnection方法可以解析加了签名的URL,SO温馨提示大家以后可以慎用Hutool工具类,同时也希望走过路过的朋友可以指导一波,怎么用Hutool解析URL获取图片base64。

最新文章

  1. expect结合ssh遍历线上机器
  2. Android --#字XO小游戏
  3. stm32f系列单片机startup_stm32fxxx.s文件说明(转)
  4. (转 部分修改) IOS 手势密码(简单版)
  5. poj3252 组合数学
  6. WCF配置文件
  7. 【DataStructure】Some useful methods for arrays
  8. svn恢复到某一版本
  9. WPF中TextBox的PreviewMouseLeftButtonUp事件
  10. Python之路-Linux命令基础(3)
  11. 201521123065《java程序设计》第13周学习总结
  12. 201521123103 《java学习笔记》 第十周学习总结
  13. intellij idea 官方帮助文档翻译(一)安装
  14. 安装rabbtimq CentOS 7
  15. 【原创】为什么浮点数1e38f + 1 - 1e38f等于0
  16. input的type类型
  17. Python解析Linux命令行
  18. hive的使用
  19. (二 -2) 天猫精灵接入Home Assistant-自动发现Mqtt设备
  20. ARC 101E.Ribbons on Tree(容斥 DP 树形背包)

热门文章

  1. 【工具篇】接口测试神器 -- Postman 入门教程
  2. sau交流学习社区—vue总结:使用vue的computed属性实现监控变量变化,使用vue的watch属性监控变量变化从而实现其他业务
  3. C#ComboBox控件“设置 DataSource 属性后无法修改项集合”的解决方法
  4. kubernetes实践之二:Kubernetes可视WEB UI Dashboard搭建
  5. vue之$root,$parent
  6. 怎么让DIV在另一个DIV里靠底部显示?
  7. 虚拟机中安装Ubuntu后,安装VMwareTools出错的解决办法:Not enough free space to extract VMwareTools
  8. Windows系统配置OutLook邮箱教程一
  9. kerberos环境storm配置:Running Apache Storm Securely
  10. 如何使用Android Studio在安卓平台对Unity开发的应用进行性能检查?