我目前正在修改业务应用程序的文档文字 SOAP 服务,该应用程序前后传输有关客户的数据。
刚刚确定了传输扫描文档图像的新要求。我遇到的问题是我使用的专有语言不支持 SOAP 附件。
传输的图像可以是最大 32KB 的任何图像。
我能想到的唯一解决方案是对图像进行 base64 编码,并将其作为 XML 文档的元素传递。
这感觉真是个糟糕的主意,但我想不出更好的主意。
有任何想法吗?
编辑:我忘了提及该映像不是远程保存在文件系统中,而是存储在 Oracle 数据库中,我无法直接连接该数据库,
如果您使用 XML 作为数据传输机制,则必须以某种方式对图像进行编码。原因是 XML 是一种文本格式,XML 处理器将尝试将二进制数据解码为文本(更具体地说,解码为 UTF-8,除非您指定不同的编码)。此外,XML 明确禁止多个字符(XML 1.0 的大多数 ASCII 不可打印字符,XML 1.1 的 \u0000),因此如果您只是将图像数据转储到(例如)CDATA 部分,则会损坏数据。
编辑:XML Schema 定义了“base64二进制” http://www.w3.org/TR/xmlschema-2/#base64Binary类型,因此您应该能够适当地定义您的 WSDL(假设您正在使用自动编组器)。至少,你应该使用“xsi:类型” http://www.w3.org/TR/xmlschema-1/#xsi_type包含编码内容的元素上的属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)