使用代码获得Hybris Commerce里显示的产品图片
使用下面這個API去取Hybris Commerce系統里產品主數據的明細信息:
https://:9002/rest/v2/electronics/products/300938?fields=FULL
其中圖片的url包含在字段images.url里,如下圖所示:
加上全域名后,這個url是能夠直接在瀏覽器里訪問的:https://:9002/rest/v2/medias/?context=bWFzdGVyfGltYWdlc3wxMzkzNnxpbWFnZS9qcGVnfGltYWdlcy9oMGQvaDVhLzg3OTYyMTQwOTk5OTguanBnfDIwNTM4ZDc0YjQ5YjQzNGE0ZTJlMDZlNmU2NGNmOTI4MzAwOGM1Y2UwNTkyZmJkMzczMTljN2I2N2MzZmY3N2I
只是因為我這臺運行Hybris commerce的服務器證書設置有問題,因此微信里訪問這個url時,報下面的錯誤:
該地址為IP地址,請使用域名訪問網站:
在手機瀏覽器里直接輸入IP地址是可以訪問這張圖片的:
url里的context的值:bWFzdGVyfGltYWdlc3wxMzkzNnxpbWFnZS9qcGVnfGltYWdlcy9oMGQvaDVhLzg3OTYyMTQwOTk5OTguanBnfDIwNTM4ZDc0YjQ5YjQzNGE0ZTJlMDZlNmU2NGNmOTI4MzAwOGM1Y2UwNTkyZmJkMzczMTljN2I2N2MzZmY3N2I
這個值是base64編碼之后的值,使用常用的base64解碼之后查看:
就是一些Hybris系統上存儲圖片的Administration信息。
考慮到直接返回這個url給消費端的話,由于證書問題,前端顯示這個圖片不太方便,故我們決定將圖片的base64編碼之后的內容返回給前端,而不是url.
故使用下面這段簡單的代碼,根據url獲得圖片的base64 encode編碼值:
RestTemplate template = new RestTemplate();String url = "https://<host>:9002/rest/v2/medias/?context=bWFzdGVyfGltYWdlc3wxMzkzNnxpbWFnZS9qcGVnfGltYWdlcy9oMGQvaDVhLzg3OTYyMTQwOTk5OTguanBnfDIwNTM4ZDc0YjQ5YjQzNGE0ZTJlMDZlNmU2NGNmOTI4MzAwOGM1Y2UwNTkyZmJkMzczMTljN2I2N2MzZmY3N2I";byte[] imageBytes = template.getForObject(url, byte[].class);System.out.println("response size: " + imageBytes.length);String base64Image = Base64.getEncoder().encodeToString(imageBytes);System.out.println("content: " + base64Image);將生成的base64編碼粘貼近在線base64解碼網站,可以成功還原成圖片:
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的使用代码获得Hybris Commerce里显示的产品图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序实现每日签到功能的方法_小程序
- 下一篇: LOL图标如何点亮 英雄联盟图标点亮教程