Я планирую разработать приложение для iPhone, и этому приложению потребуется доступ к нескольким сервисам SOAP. Выполняя некоторую базовую проверку в iPhone SDK, я не смог найти никакой поддержки для доступа к сервисам SOAP, но небольшое количество поисков в Google привело к выводу, что в iPhone SDK нет поддержки SOAP.
Поэтому, если я хочу создать это приложение, мне нужно будет предложить подход для доступа к SOAP-сервисам с iPhone. Какой будет лучший подход? Какие-нибудь лучшие практики? Кто-то уже написал библиотеку, используя функциональность, присутствующую в iPhone SDK, для доступа к службам SOAP?
(Так как служба, к которой мне нужно получить доступ, предоставляется другой стороной, и они предоставляют ее только как SOAP, к сожалению, нет возможности переключиться на интерфейс другого типа (например, API на основе REST).
Геро
Ответы:
Одно слово: не надо.
ОК, очевидно, это не настоящий ответ. Но все же SOAP следует избегать любой ценой. ;-) Можно ли добавить прокси-сервер между iPhone и веб-сервисом? Возможно, что-то, что превращает REST в SOAP для вас?
Вы можете попробовать CSOAP , библиотеку SOAP, которая зависит от libxml2 (которая включена в iPhone SDK).
Я написал свой собственный SOAP-фреймворк для OSX. Однако он активно не поддерживается и потребует некоторого времени для портирования на iPhone (для начала вам нужно заменить NSXML на TouchXML )
источник
Мое решение состояло в том, чтобы прокси-сервер принимал REST, выдавал SOAP-запрос и возвращал результат, используя PHP.
Время выполнения: 15-30 минут.
Не самый элегантный, но солидный.
источник
Я исторически свернул свой собственный доступ на низком уровне (генерация и анализ XML), чтобы справиться с случайной необходимостью выполнять запросы в стиле SOAP от Objective-C. Тем не менее, есть библиотека, которая называется SOAPClient ( soapclient ) с открытым исходным кодом (лицензия BSD) и доступна в Google Code ( mac-soapclient ), которая может представлять интерес.
Я не буду свидетельствовать о его возможностях или эффективности, поскольку я никогда не использовал его и не работал с его API, но он доступен и может обеспечить быстрое решение для вас в зависимости от ваших потребностей.
Когда-то у Apple была очень сломанная утилита под названием WS-MakeStubs. Я не думаю, что он доступен на iPhone, но вас также может заинтересовать библиотека с открытым исходным кодом, предназначенная для его замены - код генерирует Objective-C для взаимодействия с SOAP-клиентом. Снова, я не использовал это - но я отметил это в моих примечаниях: wsdl2objc
источник
Вы можете подключиться с помощью инструмента, который я нашел http://www.wsdl2code.com
источник
Вот быстрый пример кода 4, который выполняет вызов API с использованием формата сервиса SOAP.
источник
Посмотрите здесь эту ссылку и их дорожную карту. У них есть RO | C, и они могут подключаться к своим веб-сервисам, которые, вероятно, включают SOAP (я использую версию VCL, которая, безусловно, включает ее).
источник
Взгляните на gsoap, который включает два примера iOS в пакете загрузки под ios_plugin. Инструмент преобразует WSDL в код для SOAP и XML REST.
источник