Как отличить это веб-сервис SOAP или REST? - PullRequest
5 голосов
/ 25 августа 2011

Мне нужно использовать некоторые веб-сервисы .NET asmx, которые в настоящее время реализованы на каком-либо веб-сайте. Мне нужно создать приложение, которое использует эти веб-сервисы так же, как и веб-сайт. Есть две проблемы. Во-первых, у меня нет описания этих методов веб-сервиса (вызовов, используемого формата и т. Д.). И, во-вторых, у меня есть только приложение, которое использует JSON-framework для получения данных JSON от флик с помощью его API. Я предполагаю, что это было сделано с помощью веб-сервисов REST :) Я понимаю, что для выполнения сообщений / получения на сервер мне нужно создать строку запроса, затем передать ее веб-серверу, получить результаты, проанализировать их (XML или JSON) и затем просмотреть их. Итак, я не знаю, как определить формат веб-сервисов текущего сайта. Я просмотрел исходный код этого веб-сайта, увидел кучу файлов кода Javascript, которые выполняют много загадочных проверок, проверок и т. Д. Итак, как определить правильный формат?

Ответы [ 2 ]

6 голосов
/ 25 августа 2011

Если это сервис .NET ASMX, то это всегда SOAP.Сервис SOAP, предоставляемый через HTTP, всегда будет использовать методы HTTP POST для связи.Он также должен предоставлять файл .wsdl для использования и генерации клиентского кода из него, поэтому вам не придется беспокоиться об использовании JSON-фреймворка или организации собственных HTTP-запросов к этому веб-сервису ... сгенерированному вами Objective-CКлиент должен позаботиться об этом за вас.

Похоже, что на этот вопрос есть ответы, которые вам нужны для этого в Objective-C.

2 голосов
/ 25 августа 2011

Как говорит @whaley в своем ответе, похоже, что вы имеете дело с сервисом SOAP здесь.Знание этого позволяет вам сделать шаг в правильном направлении, но если вы хотите взаимодействовать с ним, вам нужно сделать больше, чем это.Вам необходимо знать подробности поддерживаемых им операций SOAP, схему XML для сообщений с запросами и ответами и т. Д. Если вы сможете найти файл WSDL, он должен предоставить вам всю эту информацию.

Если вы не можете отследить файл WSDL (некоторые службы не хотят упростить его по разным причинам), то вы все равно сможете его выяснить.Если веб-сайт действительно взаимодействует с использованием интерфейса SOAP, вы можете просматривать запросы, которые отправляет ваш браузер, используя любое количество инструментов.В Safari включите меню инструментов разработчика, а затем откройте веб-инспектор.Вы можете увидеть детали HTTP-запросов и посмотреть, что происходит.Firefox имеет плагин Firebug, который может делать то же самое и многое другое.Каждый браузер имеет свои собственные инструменты для разработчиков, но вам нужно найти подходящий инструмент для вашего браузера.

Предупреждение: часто веб-страница, взаимодействующая с вашей серверной службой, фактически не используетсервис SOAP напрямую.Он может использовать альтернативный и не общедоступный интерфейс для выполнения необходимых вызовов.Если вы посмотрите на запросы, которые отправляет ваш браузер, и они выглядят как сообщение SOAP (многие вещи, такие как элементы SoapEnvenlope с отдельным XML-запросом / ответом), то можно с уверенностью предположить, что вы можете реплицировать эти сообщения SOAP из target-c.Если нет, то вам может не повезти, если вы не сможете отследить файл WSDL.

...