Estoy planeando desarrollar una aplicación para iPhone y esa aplicación tendría que acceder a un par de servicios SOAP. Mientras realizaba algunas comprobaciones básicas en el iPhone SDK, no pude encontrar ningún soporte para acceder a los servicios SOAP, un poco de Google condujo a la conclusión de que no hay soporte para SOAP en el iPhone SDK.
Entonces, si quiero compilar esa aplicación, necesitaré un enfoque para acceder a los servicios SOAP desde el iPhone. ¿Cuál sería el mejor enfoque? ¿Alguna mejor práctica? ¿Alguien ya escribió una biblioteca usando la funcionalidad que está presente en el SDK de iPhone para acceder a los servicios SOAP?
(Dado que el servicio al que necesito acceder está expuesto por otra parte y solo lo exponen como SOAP, desafortunadamente no es una opción cambiar a otro tipo de interfaz (por ejemplo, API basada en REST).
Gero
Respuestas:
Una palabra: no lo hagas.
OK, obviamente, esa no es una respuesta real. Pero aún así, se debe evitar SOAP a toda costa. ;-) ¿Es posible agregar un servidor proxy entre el iPhone y el servicio web? ¿Quizás algo que convierte REST en SOAP para ti?
Usted podría tratar CSOAP , una biblioteca SOAP que depende de libxml2 (que está incluido en el iPhone SDK).
He escrito mi propio marco SOAP para OSX. Sin embargo, no se mantiene de forma activa y requerirá algo de tiempo para transferir al iPhone ( para comenzar, deberá reemplazar NSXML con TouchXML )
fuente
Mi solución fue hacer que un servidor proxy aceptara REST, emitiera la solicitud SOAP y devolviera el resultado, usando PHP.
Tiempo de implementación: 15-30 minutos.
No muy elegante, pero sólido.
fuente
Históricamente, he rodado mi propio acceso a un nivel bajo (generación y análisis XML) para hacer frente a la necesidad ocasional de hacer solicitudes de estilo SOAP de Objective-C. Dicho esto, hay una biblioteca disponible llamada SOAPClient ( soapclient ) que es de código abierto (con licencia BSD) y disponible en Google Code ( mac-soapclient ) que podría ser de interés.
No daré fe de sus habilidades o efectividad, ya que nunca lo he usado o he tenido que trabajar con sus API, pero está disponible y podría proporcionarle una solución rápida dependiendo de sus necesidades.
Apple tuvo, en un momento, una utilidad muy rota llamada WS-MakeStubs. No creo que esté disponible en el iPhone, pero también puede interesarle una biblioteca de código abierto destinada a reemplazar eso: el código genera Objective-C para interactuar con un cliente SOAP. Nuevamente, no lo he usado, pero lo he marcado en mis notas: wsdl2objc
fuente
Puedes conectarte usando una herramienta que encontré http://www.wsdl2code.com
fuente
Aquí hay un código de muestra rápido 4 que ejecuta llamadas API utilizando el formato de servicio SOAP.
fuente
Eche un vistazo aquí a este enlace y su hoja de ruta. Tienen RO | C en camino, y eso puede conectarse a sus servicios web, lo que probablemente incluye SOAP (yo uso la versión VCL que definitivamente lo incluye).
fuente
Eche un vistazo a gsoap que incluye dos ejemplos de iOS en el paquete de descarga en ios_plugin. La herramienta convierte WSDL en código para SOAP y REST XML.
fuente