Planuję opracować aplikację na iPhone'a, która musiałaby uzyskać dostęp do kilku usług SOAP. Podczas wykonywania podstawowych czynności sprawdzających w zestawie SDK iPhone'a nie byłem w stanie znaleźć żadnej pomocy w dostępie do usług SOAP, trochę Googlingu doprowadziło do wniosku, że brak jest obsługi SOAP w zestawie SDK iPhone'a.
Więc jeśli chcę zbudować tę aplikację, muszę wymyślić sposób dostępu do usług SOAP z iPhone'a. Jakie byłoby najlepsze podejście? Jakieś najlepsze praktyki? Czy ktoś już napisał bibliotekę, korzystając z funkcji dostępnej w zestawie iPhone SDK, aby uzyskać dostęp do usług SOAP?
(Ponieważ usługa, do której muszę uzyskać dostęp, jest ujawniana przez inną firmę i ujawniają ją tylko jako SOAP, niestety nie jest dostępna opcja przełączenia na inny typ interfejsu (np. Interfejs API oparty na REST).
Gero
Odpowiedzi:
Jedno słowo: nie.
OK, oczywiście, że to nie jest prawdziwa odpowiedź. Ale nadal należy unikać mydła za wszelką cenę. ;-) Czy można dodać serwer proxy między iPhone'em a usługą internetową? Być może coś, co przekształca REST w SOAP?
Państwo mogli spróbować CSOAP , biblioteka SOAP, który zależy od libxml2 (który jest zawarty w iPhone SDK).
Napisałem własną strukturę SOAP dla OSX. Jednak nie jest aktywnie utrzymywany i wymaga trochę czasu na przeniesienie na iPhone'a ( na początek musisz zastąpić NSXML TouchXML )
źródło
Moje rozwiązanie polegało na tym, aby serwer proxy zaakceptował REST, wydał żądanie SOAP i zwrócił wynik za pomocą PHP.
Czas na wdrożenie: 15-30 minut.
Nie najbardziej elegancki, ale solidny.
źródło
Historycznie wprowadziłem własny dostęp na niskim poziomie (generowanie XML i parsowanie), aby poradzić sobie z okazjonalną potrzebą wykonywania żądań w stylu SOAP z Objective-C. To powiedziawszy, dostępna jest biblioteka o nazwie SOAPClient ( soapclient ), która jest open source (licencjonowana BSD) i dostępna w Google Code ( mac-soapclient ), która może być interesująca.
Nie będę potwierdzać jego umiejętności ani skuteczności, ponieważ nigdy go nie użyłem ani nie musiałem pracować z jego interfejsami API, ale jest on dostępny i może zapewnić szybkie rozwiązanie w zależności od potrzeb.
Apple miał kiedyś bardzo zepsute narzędzie o nazwie WS-MakeStubs. Nie sądzę, że jest dostępny na iPhonie, ale możesz również zainteresować się biblioteką open source, która ma to zastąpić - kod generuje Objective-C do interakcji z klientem SOAP. Znowu go nie użyłem - ale zaznaczyłem to w swoich notatkach: wsdl2objc
źródło
Możesz połączyć się za pomocą narzędzia, które znalazłem http://www.wsdl2code.com
źródło
Oto szybki przykładowy kod 4, który wykonuje wywołania API przy użyciu formatu usługi SOAP.
źródło
Zobacz tutaj ten link i jego mapę drogową. Po drodze mają RO | C i mogą łączyć się z ich usługami internetowymi, które prawdopodobnie obejmują SOAP (używam wersji VCL, która zdecydowanie je zawiera).
źródło
Spójrz na gsoap, który zawiera dwa przykłady iOS w pakiecie do pobrania pod ios_plugin. Narzędzie konwertuje WSDL na kod dla SOAP i XML REST.
źródło