Java 解析web服务结果

Java 解析web服务结果,java,web-services,soap,wsdl,android-ksoap2,Java,Web Services,Soap,Wsdl,Android Ksoap2,我正在使用下面的代码片段从给定的wsdl url获取用户详细信息,它只返回第一个用户的信息,而不是整个列表,我如何更正它以打印整个用户详细信息?我需要它在Android上运行,所以我使用ksoap-2-Android库 请记住,我对web服务和wsdl内容完全是新手。我试着理解阅读,但没有取得很多成果 package parsewsdl; import java.io.IOException; import org.ksoap2.SoapEnvelope; import org.ksoap2.

我正在使用下面的代码片段从给定的wsdl url获取用户详细信息,它只返回第一个用户的信息,而不是整个列表,我如何更正它以打印整个用户详细信息?我需要它在Android上运行,所以我使用ksoap-2-Android库

请记住,我对web服务和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.printlnresult.toString;给出

我不知道这是最充分还是最合适的方法,但我找到了这样的解决方案:

...
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");
...

在我看来,这项服务只为你提供了一大堆用户名。代码中没有限制。因此,要么需要web服务提供商提供限制,要么需要通过更改METHOD_NAME变量和result.getProperty中的参数来使用其他web服务命令。web服务文档说了什么?除了url,我什么都没有,只是被告知将用户列表和详细信息反映到android应用程序上。另外,System.out.printlnresult.toString;给这个:。我需要以某种方式解析它,但我还不能得到它。。