Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Android and web service


Автор: Bandit 28.8.2010, 15:46
Доброго времени суток формучанам.

Вопрос далекий от совершенства и конкретики.

Мне необходимо из апликухи андройда достучаться до сервиса AXIS.

Опыта в этом деле у меня нет, и примеров исполнения подобной фичи тоже.

Есть ли среди ВАС товарищи которые могут поделиться опытом? ОЧЕНЬ необходима помощь. 

Автор: ivanovpv 29.8.2010, 15:00
В API Android'а нет поддержки SOAP и по моему совершенно правильно. У протокола SOAP слишком большой оверхед, чтобы его использовать в мобильных устройствах. 

Ну если сильно надо то есть 2 способа:
1) Путь героя: надо установить коннект с сервисом врукопашную парсить ответы сервиса и формировать "на лету" нужные XML
2) Правильный способ: Использовать библиотеку http://ksoap2.sourceforge.net/ - он http://code.google.com/p/ksoap2-android/

Автор: Bandit 29.8.2010, 15:24
ivanovpv, спасибо за ответ.

Скажите есть ли у Вас рабочий пример использование этой библиотеки?
У меня есть сервис который возвращает строковые значения по вызовам некоторых функций. 
http://86.57.254.230:8484/services/HelloWorld?wsdl

Нашел пример использования, но у меня он не заработал http://www.anddev.org/calling_a_web_service_from_android-t348.html

мой код:

Код

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransport;


public class WebServiceHandler {

    private static final String SOAP_ACTION = "";
    private static final String METHOD_NAME = "getCategories";
    private static final String NAMESPACE = "http://example";
    private static final String URL = "http://86.57.254.230:8484/services/HelloWorld?wsdl";
    private Object resultRequestSOAP = null;
    
    
    public String[] getTest(){

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);


//         //SoapObject 
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.setOutputSoapObject(request);
       

        HttpTransport androidHttpTransport = new HttpTransport(URL);
        String[] results = null;
        try 
        {
            androidHttpTransport.call(SOAP_ACTION, envelope);
            resultRequestSOAP =  envelope.getResponse();
            results = (String[])  resultRequestSOAP;
            //tv.setText( results[0]);
        }
        catch (Exception e)
        {
         e.printStackTrace ();
        }
        return results;
    }


возможно что-то настроил не верно.  помогите разобраться пожалуйста.  с веб-сервисами работал мало.

Автор: ivanovpv 31.8.2010, 13:39
Не-а не помогу... Давно я с вебсервисами не баловался (лет 8 наверное уже)...

Автор: Bandit 30.9.2010, 17:21
Всем спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)