背景:今天由於生產環境的系統界面圖片沒法顯示被領導叼了一波,以前用Hutool工具類解析URL獲取圖片的,在生產環境上跑了一個多月都正常,嘣,今天忽然發現週六下午後的圖片通通顯示異常,以後改成用java原始HttpConnection的方式解析URL獲取圖片OK。前端
簡單的說下項目的業務邏輯&我當事人的想法:java
一、首先,這個URL圖片地址是項目上游合做夥伴經過消息隊列發送給個人,而後我再把URL轉爲base64,接着把轉好的base64上傳到一個文件存儲服務器中,這時能夠經過Key和Object的組合從文件服務器中下載以上傳的圖片,而後就利用WebSocket推送Key和Object的值給前端請求展現圖片;瀏覽器
二、爲何我要用Hutool工具類呢?由於用它把URL轉換爲base64就一行代碼搞定,兩行算我輸;服務器
三、爲何以前用Hutoo能夠,過了一個多月就忽然涼涼了呢?這也是我蛋疼的地方,爲了保密一些,下面URL部分是假的;工具
以前合做夥伴給我提供的URL格式如:image_url:https://xxxxxx.com:666/xxxxxxxx/xxxx/xxpic/xxxxxxxxxxurl
現在合做夥伴給我提供的URL格式如:image_url:https://xxxxxx.com:666/xxxxxxxx/xxxx/xxpic/xxxxxxxxxx?AWSAccessKeyId=XXXXX&Expires=xxxx&Signature=xxxxxspa
小老弟們一看就知道如今的URL增長了簽名和失效時間等信息,而後我那Hutool就玩不動了(求大神指導)。blog
四、雖然上游的合做夥伴沒有提早告知我他們給個人URL格式內容變了,但這也不能怪他們,由於他們提供的這個地址在瀏覽器中訪問的的確確能夠獲得一串base64字節碼,而且這串base64也能夠在瀏覽器正常轉化爲圖片顯示,最重要的是用HttpConnection解析該URL結果也OK,那麼八成就是我代碼的問題了;隊列
五、雖然這個問題算是個人鍋,可是被痛叼了一波,仍是有點不服,奈何外包公司就是這樣「沒能力好好幹,有能力給我滾蛋」!過完春節不辭職算我輸(求收留)。圖片
FYI:
如圖所示,Java自己提供的原始HttpURLConnection方法能夠解析加了簽名的URL,SO舒適提示你們之後能夠慎用Hutool工具類,同時也但願走過路過的朋友能夠指導一波,怎麼用Hutool解析URL獲取圖片base64。