2010-06-07 12 views
8

Sé que esta pregunta se ha realizado aquí anteriormente, pero no creo que esas respuestas fueran adecuadas para mis necesidades.Llamar .NET Webservice con Android

Tenemos un servicio web SOAP que se utiliza para una aplicación de iPhone, pero es posible que necesitemos una versión específica de Android o un proxy del servicio, por lo que tenemos la opción de ir con SOAP o JSON. Tengo algunas preocupaciones acerca de ambos métodos: solución

SOAP:

  1. ¿Es posible generar java código fuente de un archivo WSDL, si es así, habrá que incluir algún tipo de proxy de clase para invocar el servicio web y funcionará en el entorno Android en absoluto?
  2. Google no ha proporcionado ninguna biblioteca SOAP en Android, entonces necesito usar de terceros, ¿alguna sugerencia?
  3. ¿Qué pasa con el rendimiento/overhead con el análisis y la transmisión de SOAP xml a través del cable frente a la solución JSON ? solución

JSON:

  1. Hay algunas clases en la SDK de Android que me permita analizo JSON, pero tampoco apoya genérica análisis, al igual que si quiero que el resultado ser analizado como un tipo complejo? O ¿Debería implementar yo mismo ese ?
  2. He leído aproximadamente 2 bibliotecas antes aquí en Stackoverflow, GSON un Jackson. ¿Cuál es la diferencia entre el rendimiento y la usabilidad de (desde una perspectiva de los desarrolladores de )? ¿Tiene muchachos con alguna experiencia con de esas bibliotecas?

Supongo que la gran pregunta es, ¿qué método usar?

Espero que me puedan ayudar. Gracias de antemano :-)

Respuesta

0

He estado trabajando en algo similar yo mismo, y aunque puede que no sea la mejor autoridad en esto, diría que 9 veces de cada 10 JSON es la forma en que desea ir. No es que jabón no tenga su lugar, pero para la mayoría de las cosas JSON será más simple, y si no se ve de esa manera es más probable que su servicio necesite una refactorización en lugar de tener un dominio genuinamente complejo para representar.

La ventaja añadida es por supuesto si desea utilizar el mismo servicio en el iPhone, Blackberry, WinMo7, página web Ajax, o realmente en cualquier otro lugar, será mucho mejor para usted :-)

Mi $ 0,02

+0

Gracias. Fui con la solución json, ya que probablemente también se usará para ajax, y fue muy fácil analizar el json con Gson ;-) –

5

No puedo hablar mucho sobre la solución JSON. Pero he estado trabajando con SOAP en Android por un tiempo.

Aquí están mis comentarios sobre la solución SOAP.

  1. La biblioteca más popular que he encontrado para hacer SOAP en dispositivos Android es kSOAP.
  2. La biblioteca kSOAP predeterminada no proporciona una forma de generar clases Java desde un WSDL. Es un gran problema si tiene un WSDL con mucho método. Encontré un proyecto (http://en.sourceforge.jp/projects/sfnet_wsdl2ksoap2/) que "reclama" hacerlo. NOTA: Tengo no usado esto con éxito todavía. Lo descubrí después de haber implementado la versión actual de mi código.
  3. El análisis XML tiene una sobrecarga y, a veces puede ser un problema. La carga de análisis dependerá del contexto de la aplicación y los requisitos de rendimiento.Actualmente, obtengo un rendimiento aceptable al usar SOAP para enviar cuadros de video (SOAP que contiene marcos MJPEG codificados en base64). Para los mensajes grandes, el tiempo de análisis en un Nexus One es del orden de 150-200 ms (dependiendo del tamaño del mensaje).)

Esto puede no estar relacionado pero encontré este Google I/O session on building RESTFul applications para Android útil. Creo que también lanzaron un JSON API in 2.2

Espero que esto ayude.

+1

Gracias por su respuesta. Wsdl2ksoap2 suena como un proyecto interesante, pero está vacío. No puedo ser el único que busca una herramienta de este tipo, ¿qué hacen cuando quieren consumir un servicio web bastante grande (wsdl) y escribirlo todo manualmente? Todavía espero que alguien comente sobre la solución JSON :-) –

Cuestiones relacionadas