从HttpTransportSE.responseDump获取ksoap对象

时间:2013-04-24 05:26:30

标签: android ksoap2 android-ksoap2

在转换transport.responseDump并将字符串(字符串形式的xml数据)返回到ksoap对象时,我无法继续进行。 可能是一些代码片段将帮助我描述我的问题:

synchronized (transportLockObject)
        {
            transport.debug = true;            
            String soapAction = TARGET_NAMESPACE+"/"+method;

            try {
                transport.call(soapAction, envelope);
            } catch (SSLHandshakeException she) {
                she.printStackTrace();          
            }
        }
         System.out.println("Response ----------"+transport.responseDump);

这就是我获取responseDump的方式。我正在保存这个转储,以便以后可以使用(比如当我不想要实际的在线数据用于测试目的或没有连接[无论]时)。 后来我通常做的是

        Object response = envelope.getResponse();

        //Check if response is available... if yes parse the response
        if (response != null)
        {
            if (myResponse != null)
            {
                myResponse.parse(response);
            }
        }

我在parse()中传递的这个响应实际上是一个soap对象。 可以任何正文告诉我如何将从transport.responseDump返回的值转换为soap对象,以便将其传递给parse()方法?

任何线索或链接都会有所帮助。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用“bodyIn”代替“getResponse”

之后

httpTransport.call(SOAP_ACTION, soapEnvelope);

使用

SoapObject result = (SoapObject) soapEnvelope.bodyIn;
UserDefined resultVariable = new UserDefined(j);

UserDefined构造函数应该能够处理这个问题。

如果您的预期对象是用户定义的对象,则应使用kvmserializable实现该对象。你可以在这里找到一些例子。

KSoap2 and KvmSerializable - How to Send complex Objects like Stringarrays