2012-05-27 1 views
0

Я использую нижеприведенный фрагмент кода, чтобы получить данные пользователя из заданного URL-адреса wddl, он возвращает только информацию первого пользователя, а не весь список, как я могу исправить его, чтобы он распечатывал все данные пользователя ? Мне нужно, чтобы он работал на Android, поэтому я использую библиотеку ksoap-2-android.Результат обработки Parsing

Пожалуйста, имейте в виду, что я полностью новичок в веб-сервисе и wsdl. Я пробовал понимать чтение, но не достиг многого.

package parsewsdl; 

import java.io.IOException; 
import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 
import org.xmlpull.v1.XmlPullParserException; 

public class ParseWSDL { 

    private static final String NAMESPACE = "http://domain.intern.bits.com"; 
    private static final String METHOD_NAME = "getUserList"; 
    private static final String URL = 
     "http://www.bulusalim.com:12000/BitsMobileInternHomeWork/services/UserWebService?wsdl"; 
    private static final String SOAP_ACTION = "getUserListResponse"; 

public static void main(String[] argv) { 
    SoapObject soapObject = new SoapObject(NAMESPACE, METHOD_NAME); 
    SoapSerializationEnvelope env = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    env.setOutputSoapObject(soapObject); 

    HttpTransportSE con = new HttpTransportSE(URL); 
    try { 
     con.call(SOAP_ACTION, env); 
     SoapObject result = (SoapObject) env.bodyIn; 
     SoapObject dets = (SoapObject) result.getProperty("getUserListReturn"); 
     System.out.println(dets.getProperty("email").toString()); 

    } catch (IOException | XmlPullParserException e) {}; 
} 

Обновление: System.out.println (result.toString()); дает this

+0

Мне кажется, что услуга только предоставляет вам Handfull имен пользователей. В коде нет ограничений. Таким образом, любое ограничение требуется от поставщика веб-услуг или вам нужно использовать другую команду веб-службы, изменив переменную METHOD_NAME и параметр в result.getProperty («<параметр командной строки здесь>»). Что говорит документация веб-службы? – nullpointr

+0

У меня нет ничего, кроме URL-адреса, мне просто сказали отобразить списки пользователей и данные в приложении Android. также, System.out.println (result.toString()); дает следующее: http://pastebin.com/AcFpbG3i. Мне нужно как-то разобрать его, но я не смог его получить. – NotCamelCase

ответ

-1

Я не знаю, если это наиболее достаточно или подходящим способом, но я нашел такое решение:

... 
SoapObject result = (SoapObject) env.bodyIn; 
final int size = result.getPropertyCount(); 
for (int i = 0; i < size; i++) { 
    SoapObject tempObj = (SoapObject) result.getProperty(i); 
    // accessing operations with the name name and surname 
    tempObj.getPropertyAsString("name"); 
    tempObj.getPropertyAsString("surname"); 
...