使用SOAP将图像从库发送到Web Service

时间:2011-09-25 11:59:15

标签: android web-services image soap

我已经在网上搜索过,找不到任何有关使用SOAP向Web服务发送图像(或任何附件)的文档。

我一直在发送文本数据,但我现在需要从图库中发送图像以及文本数据,这会带来另一个问题 - 一次制作两个或更多异步任务。如果要发送的记录附有与之相关的图像,我将需要总共进行4次呼叫;

  1. 发送文本数据。
  2. 检查服务器上是否已存在该文件。
  3. 发送文件。
  4. 使用从服务器发回的u_id将文件与服务器上的记录链接。
  5. 我被建议使用Base64方法将文件转换为String然后发送它,但我感觉有一种更简洁的方式使用SOAP(没有双关语)。

    任何反馈都非常感谢。

    * 请注意我使用的是httpClient但是必须更改为使用SOAP,我对Android也相对较新,所以请原谅我,如果我在这里说了什么傻话。

1 个答案:

答案 0 :(得分:6)

使用SOAP发送附件有三种方法。

  • base64Binary的
  • SwA - 带附件的SOAP
  • MTOM

base64Binary在SOAP消息中将附件作为base64内联发送。即SOAP消息中嵌入的附件。消息增加了33%。

SWA在SOAP消息之外发送附件(SOAP消息包含对附件的引用)。但SOAP信息集不包含附件。

MTOM提供两全其美。附件在SOAP消息之外发送,并引用它,但附件看起来好像嵌入在SOAP消息中(SOAP信息集包含附件)

由于使用MTOM发送的附件显示为附件是SOAP消息的一部分,因此它允许您使用其他WS- * QOS(服务质量)属性。例如,可以使用WS-Security对MTOM消息进行签名和加密。因此,这提供了一种发送安全附件的机制,而无需额外的规范。

This示例显示了如何将MTOM与Apache AXIS2一起使用。