0

以下のコード スニペットを使用して、指定された 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.println(result.toString()); これを与える

4

1 に答える 1

-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");
...
于 2012-05-29T08:22:49.123 に答える