Как вызвать SOAP веб-сервис на Android [закрыто]

Запрос либо не возвращал строк, либо был ошибочным, поэтому возвращается FALSE. Измените его на

if (!$dbc || mysqli_num_rows($dbc) == 0)

mysqli_num_rows:

Возвращаемые значения

Возвращает TRUE при успешном завершении или FALSE при сбое. Для SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query () вернет объект результата.

542
задан Peter Mortensen 29 November 2015 в 00:13
поделиться

10 ответов

Android не обеспечивает вида библиотеки SOAP. Можно или записать собственное, или использовать что-то как kSOAP 2. Как Вы отмечаете, другие были в состоянии скомпилировать и использовать kSOAP2 в их собственных проектах, но я не имел к.

Google проявил, до настоящего времени, мало интереса в добавлении библиотеки SOAP к Android. Мое подозрение за это - то, что они поддерживали бы современные тенденции в веб-сервисах к основанным на REST сервисам, и использующий JSON в качестве формата скрытия данных. Или, с помощью XMPP для обмена сообщениями. Но это - просто догадка.

основанные на XML веб-сервисы являются немного нетривиальной задачей на Android в это время. Не зная NetBeans, я не могу говорить с инструментами, доступными там, но я соглашаюсь, что лучшая библиотека должна быть доступной. Возможно, что XmlPullParser сохранит Вас от использования SAX, но я не знаю много об этом.

243
ответ дан foxxtrot 29 November 2015 в 00:13
поделиться

Я уверен, что Вы могли сделать маленький клиент SOAP с Ось . инструкции по установке Оси .

9
ответ дан Peter Mortensen 29 November 2015 в 00:13
поделиться

org.apache.http.impl.client.DefaultHttpClient прибывает в SDK Android по умолчанию. Это получит Вас подключенный к WSDL.

HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("http://www.example.com/" + URL);
HttpResponse response = httpClient.execute(httpGet, localContext);
98
ответ дан Sarah Vessels 29 November 2015 в 00:13
поделиться

SOAP является неподходящей технологией для использования на Android (или мобильные устройства в целом) из-за обработки/парсинга наверху, это требуется. REST обслуживает, более легкое решение для веса, и это - то, что я предложил бы. Android идет с синтаксическим анализатором SAX, и это довольно тривиально для использования. Если Вы абсолютно обязаны обрабатывать/анализировать SOAP на мобильном устройстве тогда, я чувствую жалость к Вам, лучший совет, который я могу дать, не состоит в том, чтобы просто использовать SOAP.

29
ответ дан jasonhudgins 29 November 2015 в 00:13
поделиться

Это правда, что из-за накладных расходов SOAP - не лучший выбор для обмена данными с мобильными устройствами. Однако вы можете оказаться в ситуации, когда вы не контролируете формат вывода сервера.

Итак, если вам нужно придерживаться SOAP, здесь есть библиотека kSOAP2, исправленная для Android:
http: // code.google.com/p/ksoap2-android/[1275 impression

59
ответ дан 22 November 2019 в 22:20
поделиться

У меня было свидание с KSOAP; Я выбрал более простой подход.

Учитывая файл WSDL, создайте шаблоны запросов SOAP для каждого запроса (например, с использованием пользовательского интерфейса SOAP), а затем замените значения, которые будут переданы в коде. Отправьте эти данные в конечную точку службы, используя экземпляр DefaultHttpClient, и получите поток ответа. Разберите поток ответа с помощью синтаксического анализатора XML Pull.

21
ответ дан 22 November 2019 в 22:20
поделиться

Если вы можете, перейдите на JSON. Android поставляется с полным пакетом org.json

.
15
ответ дан 22 November 2019 в 22:20
поделиться

Очевидно, что невозможно создать экземпляр объекта типа IList < T > непосредственно, поскольку это тип интерфейса.

Попробуйте создать экземпляр списка < T > , а затем верните его как IList < T > .

-121--4099438-

Кстати: Существует аккуратный способ реализовать кросс-браузер встроенные блоки в IE6 +, FF2 +, Opera и WebKit с одним CSS. (Недопустимый CSS, но по-прежнему только CSS.)

-121--3546243-

Для вызова веб-службы с мобильного устройства (особенно на телефоне Android) я использовал очень простой способ. Я не использовал API клиента веб-службы при попытке вызова веб-службы. Мой подход заключается в следующем, чтобы сделать звонок.

  1. Создайте простое HTTP-соединение использование стандартного API Java StartURLConnection .
  2. Сформируйте запрос SOAP. (Вы можете сделать помощь SOAPUI для изготовления SOAP request.)
  3. Установите флаг doOutPut как true.
  4. Набор значений заголовка HTTP, например content-length, Content (длина содержимого) type и User-agent. Не забывайте для установки значения Content-length как обязательного.
  5. Запишите весь запрос SOAP в выходной поток.
  6. Вызовите метод для установления соединения и получить ответ (В моем случае я использовал getResonseCode ).
  7. Если получен код ответа
    1. Это означает, что вызов веб-службы выполнен успешно.
  8. Теперь возьмите входной поток на том же самом HTTP-соединение и получение строковый объект. Этот строковый объект: ответ SOAP.
  9. Если код ответа отличается от 200 затем принять поток ErrorInput на и получить ошибка, если она имеется.
  10. Анализ полученного ответа с помощью SAXParser (в моем случае) или DOMParaser или любой другой синтаксический анализ механизм.

Я внедрил эту процедуру для телефона Android, и он успешно запущен. Я могу проанализировать ответ, даже если он превышает 700 КБ.

31
ответ дан 22 November 2019 в 22:20
поделиться

Надеюсь Вызов веб-службы из Android поможет.

13
ответ дан 22 November 2019 в 22:20
поделиться

Вы можете посмотреть WSClient ++

17
ответ дан 22 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: