Как отобразить отклик веб-сервисов Sap Soap в Android? - PullRequest
0 голосов
/ 25 февраля 2012

httpTransport.call (SOAP_ACTION, envelope);

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

, и я также использовал Object 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 голосов
/ 25 февраля 2012

Как вы выполняете вызов SOAP? Вы используете KSOAP2? В этом случае

  1. Набор transport.debug = true

  2. Log transport.responseDump в случае исключения. Скорее всего, вы получаете сообщение об ошибке, а не правильный ответ SOAP / xml.

Ваш буквальный вопрос был "как обработать исключение". Вы делаете это, оборачивая ваш 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); 
    }
...