Нужна помощь для отображения возврата SOAP-запроса от веб-службы - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь сделать свое первое приложение для Android!Я звоню в веб-сервис с ksoap2, чтобы узнать подробности моей учетной записи.У меня есть функция, которая возвращает массив (resultRequestSOAP).В resultRequestSOAP есть Массив объекта.Ниже моей функции:

    public Array listall(String session){
    final String SOAP_ACTION = "http://www.nubio.net/soap/vps#listAll";
    final String METHOD_NAME = "listAll";
    final String NAMESPACE = "http://www.nubio.net/soap/vps";
    final String URL = "http://www.nubio.net/soap/vps";
    Array myArray = null;
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    //SoapObject 
    request.addProperty("session",session);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
    try 
        {
            androidHttpTransport.call(SOAP_ACTION, envelope);
            resultRequestSOAP =  envelope.getResponse();
            //retour = resultRequestSOAP.toString();
            if(resultRequestSOAP != null){
               myArray = (Array)resultRequestSOAP; 
            }
        }
    catch (Exception aE)
        {
    aE.printStackTrace ();;
        }
    return myArray;

}

Я тестирую функцию для возврата строки, и она работает нормально, но мне нужно показать массив на экране.Как я могу отобразить массив в resultRequestSOAP;?Но первоначальный возврат мыла в resultRequestSOAP;is:

array(
   0 => Object{
     vps_id      : int
     ip          : string
     hostname    : string
     password    : string (optional)
     os          : string
     os_arch     : integer
     os_distri   : string
     expire      : string (DATE TIME)
   },
   ...
)

Так что я могу вернуть массив из мыла и отобразить его !?Я прошу прощения за мой английский, я надеюсь, что вы могли бы помочь мне :) Лучшим для меня будет только отображать "строку имени хоста" из массива в виде кнопки это возможно?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2011

этот пост может помочь: http://seesharpgears.blogspot.com/2010/10/web-service-that-returns-array-of.html

см. Последний способ.

редактирование:

вместо приведения к массиву вашего resultRequestSOAP вы должны получить число свойств с помощью resultRequestSOAP.getPropertyCount() и циклически перебирать их, чтобы получить каждый объект:

SoapObject pii = (SoapObject)resultRequestSOAP.getProperty(i);

из этих объектов вы можете извлечь их собственные свойства (vps_id, ip, hostname ...) с помощью:

vps_id = Integer.parseInt(pii.getProperty(0).toString());

и так далее. в примере они строят массив своих объектов Category, но, конечно, вы можете использовать данные так, как вам хочется.

0 голосов
/ 11 февраля 2011

Не совсем уверен, что вы спрашиваете, но если ваш метод возвращает массив объектов, вы можете распечатать этот объект следующим образом:

 for(int i=0; i < myArray.length; i++){
       Object item = myArray[i];
      // Put into a TextView here if you wish, just printing to console
      System.out.println("Item: "+i +" IP: "+item.ip);
      // or if it is private with a getter
      System.out.println("Item: "+i +" IP: "+item.getIp());

      System.out.println("Hostname: "+item.hostname);

      System.out.println("Hostname: "+item.getHostname());
 }

Думаю, это все равно дает вам идею?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...