Worklight - MTOM 附件图像文件

Posted

技术标签:

【中文标题】Worklight - MTOM 附件图像文件【英文标题】:Worklight - MTOM attachments image file 【发布时间】:2015-08-25 19:42:35 【问题描述】:

作为我的 worklight 项目的一部分,我们正在调用一个 Web 服务,它将图像文件作为 MTOM 附件发送。有没有办法可以解析图像内容并转换为 JSON 对象?以下是我配置服务调用的适配器中的一段代码:

 var input =       
 method : 'post',
 returnedContentType : 'plain',   
 path: '/contentaccess-ws/ContentAccessDocument_1',     
 body :        
  content: retrieveDocumentRequest.toString(),      
  contentType : 'application/soap+xml; charset=utf-8'   
  
 ;

下面是回复:

--MIMEBoundary_89c65bb62e242e7ee812d596799431326111505dc1baf518
Content-Type: application/xop+xml; charset=utf-8;           
type="application/soap+xml"
Content-Transfer-Encoding: binary
Content-ID: <0.99c65bb62e242e7ee812d596799431326111505dc1baf518@apache.org>

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">  
<soapenv:Body><c:retrieveDocumentResponse xmlns:a="http://docs.oasis.open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:b="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:c="http://nationwide.com/schemas/Communication/iaa7_1/Content/DocumentManagement_1">
<c:Document><c:Attachments type="Content">
<c:Attachment><c:Name>Photo.jpg</c:Name>
<c:MimeType>image/jpeg</c:MimeType><c:Size>147623</c:Size>
<c:DataContent><xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:a9c65bb62e242e7ee812d596799431326111505dc1baf518@apache.org"/></c:DataContent>
</c:Attachment></c:Attachments>
<c:Properties><c:Property><c:Name>Id</c:Name><c:Value>D0C04F-0000-C511-983F-4BD2AB945534</c:Value></c:Property><c:Property><c:Name>F_PAGES</c:Name><c:Value></c:Value></c:Property></c:Properties>
</c:Document><c:Status>Successful</c:Status>
</c:retrieveDocumentResponse></soapenv:Body></soapenv:Envelope>
--MIMEBoundary_89c65bb62e242e7ee812d596799431326111505dc1baf518
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <a9c65bb62e242e7ee812d596799431326111505dc1baf518@apache.org>

????_JFIF___HH??(ExifMM*__?i___??8Photoshop 3.08BIM__8BIM_%_?_?ُ?_? ???B~
___?_?__"______??_________________  
_???____________________!1A__Qa_"q_2???_#B??_R??$3br?       
    ___%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz??????????????????????????????    ?????????????????????????????????????????????____________________ 
_???______________w______!1__AQ_aq_"2?__B????   #3R?_br?
_$4?%?     ____&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?????????????????????????????????    ?????????????????????????????????????????C______ __ -   -=----      =M=====M]MMMMMM]]]]]]]]pppppp?????????????????C____%#%@##@?    hUh????????????????????????????????????????????????????_^??

我尝试将“returnedContentType”作为“JSON”但没有用(服务向我抛出错误)。

任何指针表示赞赏!

【问题讨论】:

【参考方案1】:

适配器不会为您执行此操作。

您需要做的是从适配器获取响应,并使用能够将图像附件解码为真实图像的任何框架。

通常不使用 MOTM。而是将图像进行 base64 编码为字符串,然后将字符串解码回图像。

【讨论】:

手动解析响应,只能将响应的底部部分作为字符串获取。做了 Base64.encodeBase64(data.getBytes()) 然后将其转换为字符串。使用 标签显示图像。但仍然无法在移动设备上显示图像。 可能是编码后的字符串太长无法使用。 哦,好的。有没有其他方法可以显示图像?

以上是关于Worklight - MTOM 附件图像文件的主要内容,如果未能解决你的问题,请参考以下文章

Python 发送 mtom 消息

IBM Worklight - 来自项目的缩略图图像未在 Worklight Console 中更新

如何解析带有附件和内联图像的 EML 文件并转换为 HTML

Discord JS - 从附件下载图像

IBM Worklight - 如何重命名应用程序并更改其图标、初始图像

使用 Worklight SQL 适配器从 DB2 存储和检索图像?