欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

根据URL获取图片

程序员文章站 2022-09-07 20:55:01
背景:今天因为生产环境的系统界面图片无法显示被领导叼了一波,之前用Hutool工具类解析URL获取图片的,在生产环境上跑了一个多月都正常,嘣,今天突然发现周六下午后的图片统统显示异常,之后改为用java原始HttpConnection的方式解析URL获取图片OK。 简单的说下项目的业务逻辑&我当事人 ......

背景:今天因为生产环境的系统界面图片无法显示被领导叼了一波,之前用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:

根据URL获取图片

根据URL获取图片

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