专栏首页Jerry的SAP技术分享使用代码获得Hybris Commerce里显示的产品图片
原创

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

使用下面这个API去取Hybris Commerce系统里产品主数据的明细信息:

https://<host>:9002/rest/v2/electronics/products/300938?fields=FULL

其中图片的url包含在字段images.url里,如下图所示:

加上全域名后,这个url是能够直接在浏览器里访问的:https://<host>: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的原创文章,请关注公众号"汪子熙":

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Access context of data source and work center view do not match

    这个错误消息提示我们,data source的access context和待分配到工作中心的access context必须匹配:

    Jerry Wang
  • 第三方应用如何在SAP Kyma上进行服务注册

    Jerry之前的公众号文章 什么?在SAP中国研究院里还需要会PHP开发?提到了一个SAP Kyma的应用场景:

    Jerry Wang
  • 如何把Kubernetes config view里的base64编码过后的secret信息还原

    kubectl config view --minify --flatten -o json | jq “.clusters[0].cluster.“certi...

    Jerry Wang
  • python 动态迁移solr数据

    上项目的时候,遇见一次需求,需要把在线的 其中一个 collection 里面的数据迁移到另外一个collection下,于是就百度了看到好多文章,其中大部分都...

    py3study
  • Linux系统crontab备份数据库执行不成功?可能是百分号%在作怪!

    之前博客分享过一篇《Linux/vps 本地七天循环备份和七牛远程备份脚本》,我自己也一直在用。某天检查备份的时候,突然发现数据库的备份的压缩包是空的! 看了下...

    张戈
  • 大数据投融资周报(5月21日——5月26日,共10起)

    作者 | abby 本周在大数据领域总共发生10起投融资事件,其中涉及了6家中国企业以及4家美国企业,这些企业主要涉及的领域包括医疗科技、VR游戏、地产等多个领...

    数据猿
  • 爬虫系列(14)Scrapy 框架-模拟登录-Request、Response。

    通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达下载程序,后者执行请求并返回一个Response对象,该对象返回到发出请求的爬虫程序。

    小Gy
  • python爬取考研网的信息

    https://yz.chsi.com.cn/zsml/queryAction.do

    我被狗咬了
  • Tomcat自带的Session共享方案实施记录

    一般来说,在多个tomcat集群业务中,session会话共享是必须的需求,不然前端nginx转发过来的请求不知道之前请求在哪台tomcat节点上,从而就找不到...

    洗尽了浮华
  • python网络爬虫(3)python爬虫遇到的各种问题(python版本、进程等)

    Python3中,import cookielib改成 import http.cookiejar

    嘘、小点声

扫码关注云+社区

领取腾讯云代金券