如何在Android中显示Sap Soap Web服务响应?

时间:2012-02-25 12:12:23

标签: android web-services soap sap

httpTransport.call(SOAP_ACTION,envelope);

SoapPrimitive response =(SoapPrimitive)envelope.getResponse();

我还使用了对象 result = envelope.getResponse();

我正在使用以上代码处理Android中的响应,但我得到以下异常:

02-25 17:17:35.185: WARN/System.err(9786): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG [{http://schemas.xmlsoap.org/wsdl/}wsdl:definitions targetNamespace='urn:sap-com:document:sap:soap:functions:mc-style'>@1:686 in java.io.InputStreamReader@4052d3f0)][1]

如何处理android中的异常

1 个答案:

答案 0 :(得分:0)

您是如何执行SOAP调用的?你在用KSOAP2吗?在那种情况下,

  1. 设置transport.debug = true

  2. 如果发生异常,请记录transport.responseDump。您很可能收到错误消息,而不是正确的SOAP / xml响应。

  3. 你的文字问题是“如何处理异常”。你可以通过在适当的尝试中包装transport.call来实现这一点,例如

        try
        {
            transport.call(SOAP_ACTION, envelope);
            // ... envelope.getResponse() ...
    
        }
        catch(XMLPullParserException e)
        {
            Log.e(TAG, e.getDetail(), e);
            Log.d(TAG, transport.requestDump); 
            Log.d(TAG, transport.responseDump); 
        }