2011-09-25 37 views
7

He rastreado la red y no puedo encontrar ninguna documentación sobre el envío de imágenes (o cualquier archivo adjunto) a un servicio web utilizando SOAP.Enviar imágenes de la galería al servicio web utilizando SOAP

He estado enviando datos de texto bien, pero ahora necesito enviar imágenes de la galería junto con los datos de texto, lo que plantea otro problema: realizar dos o más tareas asíncronas a la vez. Necesitaré hacer 4 llamadas en total SI el registro a enviar tiene una imagen afiliada;

  1. Envíe los datos de texto.
  2. Compruebe si el archivo ya existe en el servidor.
  3. Envía el archivo.
  4. Enlace el archivo con un registro en el servidor utilizando un u_id enviado desde el servidor.

Me aconsejaron usar un método Base64 para convertir el archivo a una Cadena y luego enviarlo, pero tengo la sensación de que hay una manera más limpia de hacerlo con SOAP (sin juego de palabras).

Cualquier comentario muy apreciado.

* Tenga en cuenta que estaba usando un httpClient pero tuve que cambiar a usar SOAP también soy relativamente nuevo en Android, así que discúlpeme si he dicho algo estúpido aquí.

Respuesta

6

Hay tres formas de enviar archivos adjuntos con SOAP.

  • base64Binary
  • SwA - SOAP con archivos adjuntos
  • MTOM

base64Binary envía los datos adjuntos como línea base 64 en el mensaje SOAP. es decir, el Adjunto está incrustado en el Mensaje SOAP. Hincha el mensaje en un 33%.

SWA envía el archivo adjunto fuera del mensaje SOAP (El mensaje SOAP contiene una referencia al archivo adjunto). Pero el infoset de SOAP no contiene el archivo adjunto.

MTOM Brinda lo mejor de ambos mundos. El archivo adjunto se envía fuera del mensaje SOAP con una referencia, pero el archivo adjunto aparece como si estuviera incrustado en el mensaje SOAP (El conjunto de información SOAP contiene el archivo adjunto)

debido a que los archivos adjuntos enviados mediante MTOM aparecen como el archivo adjunto es parte del mensaje SOAP que le permite usar otros atributos WS- * QOS (Quality of Service). Por ejemplo, los mensajes MTOM se pueden firmar y cifrar utilizando WS-Security. Por lo tanto, esto proporciona un mecanismo para enviar archivos adjuntos seguros sin la necesidad de especificaciones adicionales.

This ejemplo muestra cómo usar MTOM con Apache AXIS2.

Cuestiones relacionadas