使用下面这个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里显示的产品图片的更多相关文章

  1. 浅谈SAP CRM和Hybris Commerce里的价格架构折扣

    最近Jerry做了一个和价格折扣相关的原型项目,把学到的知识记录下来,以备将来查阅. 在这个原型项目里,我们用React-Native开发了一个移动应用,用户可以在手机上浏览SAP Hybris Co ...

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

    进入backoffice的Media中心, 首先新建一个文件夹,用于存放即将创建的media对象: 取名为jerryimage: 然后创建一个新的media对象,取名jerryproductimage ...

  3. 代码中引用res里的颜色、图片

    1.imageButton userImgButton 在代码中设置图片,使用res/Drawable 里的图片 Resources res = getResources(); Bitmap inDr ...

  4. Hybris Commerce下单时遇到产品库存不足的解决办法

    客户在Storefront下单试图购买一个产品时,遇到out of stock库存不足的错误,无法下单: 解决办法:登录Backoffice,Stock level菜单: 创建一个新的stock le ...

  5. MFC显示GIF动画图片

    本帖则将讨论如何在MFC的对话框里显示GIF动画图片.一些关于传统控件的美化方法正在研究当中会陆续发帖的. 这是本帖用到的一个VS2008例程.  附件  GifPicture.rar (138.1 ...

  6. Magento后台订单显示产品图片的修改方法

    Magento后台订单原来是没有显示产品图片,客服业务还得到网站前台查找这个产品的图片提供给发货部,这样是很不方便的.为提高工作效率,应客服业务要求,现对Magento后台订单进行修改,使订单页面就显 ...

  7. Hybris Storefront里产品图片显示不出来的分析方法

    在Hybris Backoffice里新建一个product,维护了一些图片信息,然而在Storefront上进行搜索时,无论结果列表,还是产品明细页面里,都没有对应的图片可以显示. 我的排查方法是, ...

  8. 如何在一个div标签里显示出另一个网页? <iframe src=" http://www.baidu.com " width="800px" height="200px" scrolling="no" frameborder="0"> </iframe>

    如何在一个div标签里显示出另一个网页? 用在div里用iframe,就像下面的代码 <iframe src=" http://www.baidu.com " width=& ...

  9. ABAP的语法高亮是如何在浏览器里显示的

    这篇文章的原文我发表在SAP官方社区上:https://blogs.sap.com/2018/03/09/how-abap-syntax-highlight-is-implemented-in-web ...

随机推荐

  1. matlab-fsolve函数求解多元非线性方程

    记录一下代码,方便下次套用模板 options=optimset('MaxFunEvals',1e4,'MaxIter',1e4); [x,fval,exitflag] = fsolve(@(x) m ...

  2. yugabyte 安装pg_hashids 扩展

    主要目的比较简单,就是测试下yugabyte 对于pg 扩展的支持,今天在测试plv8的时候发现有问题(以及提交issue了,很期待官方的解决) 所以测试下一个其他的扩展,看看是否像官方介绍的那样 环 ...

  3. 三天精通Vue--学前摘要

    Vue Vue是一个前端框架,中文学习教程https://cn.vuejs.org/v2/guide/components.html 学习的前提:一点的 HTML+CSS+js node.js是前端的 ...

  4. 每日一问:不一样的角度吐槽下 DataBinding

    我们项目采用的是 kotlin && DataBinding 处理的,可能你会疑问,既然用的是 kotlin,为啥没有用 kotlinx?新的页面当然是用的 kotlinx 啦,但我们 ...

  5. winform自定义分页控件

    1.控件代码: public partial class PagerControl : UserControl { #region 构造函数 public PagerControl() { Initi ...

  6. c++ rvo vs std::move

    c++ rvo vs std::move To summarize, RVO is a compiler optimization technique, while std::move is just ...

  7. Netty4实战 - TCP粘包&拆包解决方案

    Netty是目前业界最流行的NIO框架之一,它的健壮性.高性能.可定制和可扩展性在同类框架中都是首屈一指.它已经得到了成百上千的商业项目的验证,例如Hadoop的RPC框架Avro就使用了Netty作 ...

  8. 【Appium + Python3】之安卓8.1,使用xpath定位不到元素

    desired_cap = { "deviceName":"vivo", # 真机名称 "platformName":"andro ...

  9. pycharm社区办找不到View-->Tool Windows->DataBase的解决办法

    File->Settings->Plugins->Database Navigator 安装

  10. 在C++中调用FFTW

    FFTW是一个可以进行可变长度一维或多维DFT的开源C程序库,是目前最快的FFT算法实现. 本文简述了在Windows平台上,如何在C++中调用FFTW,所使用的IDE为Visual Studio 2 ...