Я пытаюсь связать свое приложение Android с моими веб-сервисами SOAP и получаю неожиданные результаты ...
Сервисы Soap работают нормально, они были протестированы с SoapUI, WSDL действителен.Я использую ksoap2 lib версии 1.6.1
Вот мой код вызова:
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("prop1", 1);
request.addProperty("prop2", "FR");
envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject objetSOAP = (SoapObject)envelope.getResponse();
Log.e("TESTSOAP", objetSOAP.getProperty(0).toString());
}
catch (Exception e){
Log.i("androidHttpTransport.requestDump", androidHttpTransport.requestDump);
e.printStackTrace();
Log.i("androidHttpTransport.responseDump", androidHttpTransport.responseDump);
}
Я получил исключение в методе "call", который:
03-13 17:31:05.791: W/System.err(6020): at 03-13 17:30:19.901: W/System.err(5976): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG .... @2:402 in java.io.InputStreamReader@46294968)
Что странно, так это то, что если я использую requestDump, чтобы получить отправленный конверт в SoapUI, чтобы попробовать его, он работает отлично.Я получил ожидаемый результат.Но responseDump на самом деле возвращает мне файл wsdl, а не результат.Точно так же, как если бы wsdl был вызван нормально, но не метод, который я пытаюсь вызвать.
Кто-нибудь понял, почему?А может как это исправить?
Спасибо!