У меня много проблем с поиском полезной информации о том, как вызвать стандартный веб-сервис SOAP / WSDL с Android. Все, что мне удалось найти, это либо очень запутанные документы и ссылки на «kSoap2», а затем немного о синтаксическом анализе всего этого вручную с помощью SAX . Хорошо, это хорошо, но сейчас 2008 год, поэтому я решил, что должна быть хорошая библиотека для вызова стандартных веб-сервисов.
Веб-сервис - это просто сервис, созданный в NetBeans . Я хотел бы иметь поддержку IDE для создания классов сантехники. Мне просто нужен самый простой / самый элегантный способ связаться с веб-сервисом на основе WSDL с телефона на базе Android.
Ответы:
Android не предоставляет никакой библиотеки SOAP. Вы можете написать свой собственный или использовать что-то вроде kSOAP 2 . Как вы заметили, другие смогли скомпилировать и использовать kSOAP2 в своих собственных проектах, но мне не пришлось этого делать.
На сегодняшний день Google проявил небольшой интерес к добавлению библиотеки SOAP в Android. Я подозреваю, что они предпочли бы поддерживать текущие тенденции в веб-службах к службам на основе REST и использовать JSON в качестве формата инкапсуляции данных. Или, используя XMPP для обмена сообщениями. Но это только предположение.
Веб-сервисы на основе XML в настоящее время являются немного нетривиальной задачей для Android. Не зная NetBeans, я не могу говорить о доступных там инструментах, но я согласен, что должна быть доступна лучшая библиотека. Возможно, что XmlPullParser избавит вас от использования SAX, но я мало что знаю об этом.
источник
org.apache.http.impl.client.DefaultHttpClient
поставляется в Android SDK по умолчанию. Это соединит вас с WSDL.источник
Это правда, что из-за накладных расходов SOAP - не лучший выбор для обмена данными с мобильными устройствами. Однако вы можете оказаться в ситуации, когда вы не контролируете формат вывода сервера.
Итак, если вам нужно придерживаться SOAP, здесь есть библиотека kSOAP2, исправленная для Android:
http://code.google.com/p/ksoap2-android/
источник
Для вызова веб-службы с мобильного устройства (особенно на телефоне Android) я использовал очень простой способ сделать это. Я не использовал API-интерфейс клиента веб-службы при попытке вызвать веб-службу. Мой подход заключается в следующем, чтобы позвонить.
HttpURLConnection
.getResonseCode
).ErrorInput
поток в том же HTTPobject и получите ошибку, если таковая имеется.Я реализовал эту процедуру для телефона Android, и он успешно работает. Я могу проанализировать ответ, даже если он превышает 700 КБ.
источник
SOAP - неподходящая технология для использования на Android (или на мобильных устройствах в целом) из-за необходимости обработки / анализа. Услуги REST - это более легкое решение, и я бы это предложил. Android поставляется с SAX-парсером, и его довольно просто использовать. Если вам абсолютно необходимо обрабатывать / анализировать SOAP на мобильном устройстве, то мне вас жаль, лучший совет, который я могу предложить, - просто не использовать SOAP.
источник
Около года назад я читал эту ветку, пытаясь выяснить, как выполнять вызовы SOAP на Android - благодаря предложениям по созданию собственного приложения с использованием HttpClient я создал собственную библиотеку SOAP для Android:
IceSoap
По сути, это позволяет вам создавать конверты для отправки через простой Java API, а затем автоматически анализировать их в объекты, которые вы определяете через XPath ... например:
становится:
Я использовал его для своего собственного проекта, но я подумал, что это может помочь некоторым другим людям, поэтому я потратил некоторое время на то, чтобы отделить его и задокументировать. Мне бы очень понравилось, если бы некоторые из ваших бедных душ, которые наткнулись на эту ветку, когда гуглили «SOAP Android», могли бы попробовать и получить какую-то выгоду.
источник
источник
У меня был свидание с KSOAP; Я выбрал более простой подход.
Имея файл WSDL, создайте шаблоны запросов SOAP для каждого запроса (например, с помощью пользовательского интерфейса SOAP), а затем подставьте значения, передаваемые в коде. Отправьте эти данные в конечную точку службы, используя экземпляр DefaultHttpClient, и получите поток ответов. Разобрать поток ответов с помощью синтаксического анализатора XML Pull.
источник
Вы можете взглянуть на WSClient ++
источник
Я создал новый клиент SOAP для платформы Android. Он использует сгенерированный интерфейс JAX-WS, но пока это только подтверждение концепции.
Если вы заинтересованы, пожалуйста, попробуйте пример и / или посмотрите источник на AndroidSOAP .
источник
Если вы можете пойти на JSON. Android поставляется с полным пакетом org.json
источник
Звоните ksoap2 методы . Это работает очень хорошо.
Установите детали, как
а затем чтобы получить результат сделать
источник
Я надеюсь, что вызов веб-службы из Android поможет.
источник
Несколько месяцев назад я работал с веб-службой jax-ws в приложении j2ee. Там мы использовали CXF wsdl2java для генерации заглушки клиента WS из файла WSDL и с этими заглушками клиента мы использовали веб-службы. Несколько недель назад, когда я пытался использовать веб-сервис таким же образом на платформе Android, я не мог, потому что в банке Android есть не все классы, поддерживающие «jax-ws». В то время я не нашел ни одного такого инструмента (если не смог эффективно работать с Google), который бы соответствовал моим требованиям -
Итак, я разработал свой собственный инструмент генерации клиента Android SOAP . Где вы должны следовать этим шагам:
например:
источник
Я уверен, что вы могли бы сделать небольшой SOAP-клиент с Axis . Инструкция по установке Axis .
источник
Я думаю, что Call SOAP Web Service из приложения Android вам очень поможет.
источник
Выполните следующие действия по методу SOAP
Из файла WSDL,
создавать шаблоны запросов SOAP для каждого запроса.
Затем подставьте значения, которые будут переданы в коде.
Отправьте эти данные в конечную точку службы, используя экземпляр DefaultHttpClient.
Получите ответный поток и, наконец,
Разобрать поток ответов с помощью синтаксического анализатора XML Pull.
источник
Если вы можете использовать JSON, есть документ, видео и образец.кода в разделе Разработка служб приложений с PHP-серверами и телефонами Android-клиентов .
источник
Для меня самый простой способ - использовать хороший инструмент для генерации всех необходимых классов. Лично я пользуюсь этим сайтом:
http://easywsdl.com/
Он поддерживает довольно сложные веб-сервисы и использует ksoap2.
источник
Я бы предложил проверить очень полезный инструмент, который мне очень помог. Ребята, которые позаботились об этом проекте, тоже очень помогли. www.wsdl2code.com/
источник
Если у вас возникли проблемы с вызовом веб-службы в Android, вы можете использовать приведенный ниже код для вызова веб-службы и получения ответа. Убедитесь, что ваш веб-сервис возвращает ответ в формате таблицы данных. Этот код поможет вам, если вы используете данные из базы данных SQL Server . Если вы используете MYSQL, вам нужно изменить одну вещь, просто замените слово NewDataSet из предложения
obj2=(SoapObject) obj1.getProperty("NewDataSet");
на DocumentElementЕсли у вас есть какие-либо проблемы по этому поводу, вы можете написать мне ..
источник
Пожалуйста, скачайте и добавьте файл библиотеки SOAP с вашим именем файла проекта: ksoap2-android-assembly-3.4.0-jar-with-dependencies
Очистите приложение и затем запустите программу
Вот код для вызова службы SOAP
Результаты могут быть JSONObject или JSONArray или String
Для вашей лучшей справки, https://trinitytuts.com/load-data-from-soap-web-service-in-android-application/
Спасибо.
источник
Это рабочий пример использования SOAP веб-сервисов в Android.
** Примечание :: *** НЕ ЗАБУДЬТЕ ДОБАВИТЬ ksoap2.jar в свой проект, а также добавить разрешение ИНТЕРНЕТ в файле AndroidManifest *
источник
Вы можете выполнить мыльный вызов как сообщение через http с определенными заголовками. Я решил этот вопрос без дополнительных библиотек, таких как ksoap2. Вот живой код получения заказов от службы мыла.
источник
Чтобы вызвать веб-сервис SOAP с Android, попробуйте использовать этот клиент
НЕ ЗАБУДЬТЕ ДОБАВИТЬ ksoap2-android.jar в путь сборки Java
источник
Добавить мыло Libaray (
ksoap2-android-assembly-3.2.0-jar-with-dependencies.jar
):public static String Fn_Confirm_CollectMoney_Approval (
источник