Ich plane, eine App für das iPhone zu entwickeln, und diese App müsste auf einige SOAP-Dienste zugreifen. Während ich einige grundlegende Überprüfungen im iPhone SDK durchführte, konnte ich keine Unterstützung für den Zugriff auf SOAP-Dienste finden. Ein bisschen Googeln führte zu dem Schluss, dass SOAP im iPhone SDK nicht unterstützt wird.
Wenn ich diese App erstellen möchte, muss ich einen Ansatz für den Zugriff auf SOAP-Dienste vom iPhone aus entwickeln. Was wäre der beste Ansatz? Best Practices? Hat jemand bereits eine Bibliothek mit den im iPhone SDK vorhandenen Funktionen für den Zugriff auf SOAP-Dienste geschrieben?
(Da der Dienst, auf den ich zugreifen muss, von einer anderen Partei bereitgestellt wird und diese nur als SOAP verfügbar gemacht wird, ist es leider keine Option, zu einem anderen Schnittstellentyp (z. B. REST-basierte API) zu wechseln.
Gero
Antworten:
Ein Wort: Nicht.
OK, das ist natürlich keine echte Antwort. Trotzdem sollte SOAP um jeden Preis vermieden werden. ;-) Ist es möglich, einen Proxyserver zwischen dem iPhone und dem Webdienst hinzuzufügen? Vielleicht etwas, das REST für Sie in SOAP umwandelt?
Sie können CSOAP ausprobieren , eine SOAP-Bibliothek, die von libxml2 abhängt (das im iPhone SDK enthalten ist).
Ich habe mein eigenes SOAP-Framework für OSX geschrieben. Es wird jedoch nicht aktiv gewartet und benötigt einige Zeit, um auf das iPhone zu portieren (Sie müssen zunächst NSXML durch TouchXML ersetzen ).
quelle
Meine Lösung bestand darin, dass ein Proxyserver REST akzeptiert, die SOAP-Anforderung ausgibt und das Ergebnis mithilfe von PHP zurückgibt.
Implementierungszeit: 15-30 Minuten.
Nicht besonders elegant, aber solide.
quelle
Ich habe meinen eigenen Zugriff in der Vergangenheit auf einer niedrigen Ebene (XML-Generierung und -Parsing) gerollt, um die gelegentliche Notwendigkeit zu bewältigen, SOAP-Stilanforderungen von Objective-C auszuführen. Es gibt jedoch eine Bibliothek namens SOAPClient ( soapclient ), die Open Source (BSD-lizenziert) ist und auf Google Code ( mac-soapclient ) verfügbar ist und möglicherweise von Interesse ist.
Ich werde seine Fähigkeiten oder Effektivität nicht bestätigen, da ich es nie verwendet habe oder mit seinen APIs arbeiten musste, aber es ist verfügbar und bietet Ihnen je nach Ihren Anforderungen möglicherweise eine schnelle Lösung.
Apple hatte einmal ein sehr kaputtes Dienstprogramm namens WS-MakeStubs. Ich glaube nicht, dass es auf dem iPhone verfügbar ist, aber Sie könnten auch an einer Open-Source-Bibliothek interessiert sein, die dies ersetzen soll - Code generiert Objective-C für die Interaktion mit einem SOAP-Client. Ich habe es wieder nicht benutzt - aber ich habe es in meinen Notizen vermerkt: wsdl2objc
quelle
Sie können eine Verbindung mit einem Tool herstellen, das ich unter http://www.wsdl2code.com gefunden habe
quelle
Hier ist ein schneller 4- Beispielcode, der API-Aufrufe im SOAP-Dienstformat ausführt.
quelle
Schauen Sie sich hier diesen Link und ihre Roadmap an. Sie haben RO | C auf dem Weg, und das kann eine Verbindung zu ihren Webdiensten herstellen, die wahrscheinlich SOAP enthalten (ich verwende die VCL-Version, die es definitiv enthält).
quelle
Schauen Sie sich gsoap an , das zwei iOS-Beispiele im Download-Paket unter ios_plugin enthält. Das Tool konvertiert WSDL in Code für SOAP und XML REST.
quelle