使用代码获得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的原创文章,请关注公众号"汪子熙":

原文地址:https://www.cnblogs.com/sap-jerry/p/12038130.html

时间: 2024-08-29 18:04:37

使用代码获得Hybris Commerce里显示的产品图片的相关文章

在MAC应用里显示多个图片(IKImageBrowserView控件使用)

在MAC应用里显示多个图片 本文参考的是:ImageViewer.v1.0.zip 从网络下载,并且做了少量整理. 原理: 1.使用的技术是:IKImageBrowserView 这个控件,可以在Object library里面找到 2.然后写一个继承类,就可以使用了. 步骤:从Object  Library里面找到IKImageBrowserView这个控件 然后,拖动倒窗口中,也可以放在视图里面 3.然后开始给这个控件绑定数据源DataSource和数据委托类Delegate 4.然后给控件

SAP CRM WebClient UI和Hybris Commerce里的跨组件跳转

CRM WebClient UI How to debug cross component navigation framework https://wiki.scn.sap.com/wiki/display/CRM/How+to+debug+cross+component+navigation+framework Hybris 点了一个产品的图片,系统怎么知道需要load哪个jsp文件来渲染? 之前的issue讨论过,这个点击对应的url,会被Spring MVC map到一个通过@Reque

如何在Hybris commerce里创建一个media对象

进入backoffice的Media中心, 首先新建一个文件夹,用于存放即将创建的media对象: 取名为jerryimage: 然后创建一个新的media对象,取名jerryproductimage: 上传图片: 选择这个media对象存放的文件夹: 从staged catalog同步到online catalog: 同步成功: 要获取更多Jerry的原创文章,请关注公众号"汪子熙": 原文地址:https://www.cnblogs.com/sap-jerry/p/11791282

在MAC应用里显示多个图片(IKImageBrowserView控件使用)(二)

接着说上一片文章: 还需要在库里面增加: QuartzCore.framework Quartz.framework 这样才能编译通过. 以上是文件结构: 以上是界面结构 一个视图,图片类的,然后还要2个委托时间,分别和类绑定, 然后选中图片视图控件里面的视图,一般这类控件有2层,要选择里面那类. 然后分别绑定这两个委托.一个是数据源,一个是委托 然后还要将这个控件定义,在这两个类里面. 然后具体操作就是在数据源里面进行. 以下是运行效果. 可以全选,还可以改名称,这个需要你自己再修改一下代码.

MFC显示GIF动画图片

本帖则将讨论如何在MFC的对话框里显示GIF动画图片.一些关于传统控件的美化方法正在研究当中会陆续发帖的. 这是本帖用到的一个VS2008例程.  附件  GifPicture.rar (138.1 KB) 上传时间:2009-11-25 16:15下载次数:1173 一.显示GIF图片控件类的介绍:   无论是在VC6.0还是在VS2008中,都没有控件能显示GIF动画图片.能显示一些静态图片的只是Picture控件.本例程用到的GIF动画显示控件类是PictureEX.其定义文件是Pictu

MAGENTO后台订单显示产品图片的修改方法

打开appdesignadminhtmldefaultdefaulttemplatesalesorderviewitems.phtml在<th><span><?php echo $this->helper(’sales’)->__(‘Item Status’) ?></span></th>前面加一行代码: <th><span><?php echo $this->helper(’sales’)->

Django在模版里显示当前日期的方法的代码

在代码过程中,把开发过程比较重要的内容记录起来,下面的代码内容是关于Django在模版里显示当前日期的方法的代码,希望对小伙伴有用. {% now "Y-m-d" %} 显示:2013-05-01 {% now "Y" %} 显示:2013 原文地址:https://www.cnblogs.com/Wladybird/p/11230963.html

MFC&amp;Opencv 在Picture控件里显示和处理图像

在VS2005和2008里,我们可以用一个 Solution 来组合几个 Project (每个 Project 基本上只包含一个 Program),当我们要构建一个多Program的应用时(例如一个客户端程序加一个服务器应用程序),利用 Solution 可以将这些 Projects 组合起来.并且共享文件和函数库.通常需要为Solution创建一个主路径,其中包含了有Projects的路径.不过在这篇文章里,我们只构建一个简单的Project,所以在创建MFC的New Project对话框里

如何在一个div标签里显示出另一个网页? &lt;iframe src=&quot; http://www.baidu.com &quot; width=&quot;800px&quot; height=&quot;200px&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot;&gt; &lt;/iframe&gt;

如何在一个div标签里显示出另一个网页? 用在div里用iframe,就像下面的代码 <iframe src=" http://www.baidu.com " width="800px" height="200px" scrolling="no" frameborder="0"> </iframe>