我正在尝试将我的 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);
}
我在“调用”方法中遇到了一个异常,即:
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 是否被调用一样,但不是我试图调用的方法。
有人知道为什么吗?也许如何纠正它?
谢谢 !