Доступ к веб-сервису на Android с помощью веб-сервиса со сложным типом данных с использованием ksoap2 - PullRequest
0 голосов
/ 17 августа 2011

В настоящее время я пытаюсь написать клиент веб-сервиса, используя ksoap2. Веб-сервис возвращает сложный тип данных. Мне нужно получить этот объект, используя мой клиент веб-сервиса.

Пожалуйста, укажите несколько указателей для достижения того же.

1 Ответ

0 голосов
/ 05 апреля 2012

Если сложный тип данных является иерархическим, то создайте SoapObject, пока не получите последний уровень.Например, следующий фрагмент кода использует три объекта SoapObject для получения ключа и значений мыльного ответа:

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
        HttpTransportSE transport = new HttpTransportSE(URL);
        transport.debug = true;
        transport.call(SOAP_ACTION+"createSubmission", envelope);
        SoapObject so = (SoapObject) envelope.bodyIn;
        Log.i("data:SO", so.toString());
        SoapObject so2 = (SoapObject)so.getProperty(0);
        Log.i("data:SO2", so2.toString());
        int count = so.getPropertyCount();
        for(int i = 0; i < count; ++i) {
        SoapObject so3 = (SoapObject)so.getProperty(i);
        Log.i("data", (String)so3.getProperty(0)+" extra");
        String key = (String) so2.getProperty(0);
        Object val = so2.getProperty(1);
        data.put(key, val);
        }
...