获取格式错误的SOAP响应
问题描述:
我是Web服务新手,正在写一个可以与Web服务通信的Android应用程序。但是,当我试图表明在android屏幕的结果,它显示:获取格式错误的SOAP响应
MethodNameResponse{MethodNameResult=anyType{};}
Web服务是应该做的服务器数据库和后期结果一个简单的查询,这里是方法的代码调用网络服务:
public void Convert(String val) {
try {
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,METHOD_NAME);
PropertyInfo p = new PropertyInfo();
p.setName(PROPERTY_NAME);
p.setValue(val);
p.setType(String.class);
request.addProperty(p);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE ahs = new HttpTransportSE(SOAP_ADDRESS);
ahs.call(SOAP_ACTION, envelope);
SoapObject response = (SoapObject) envelope.bodyIn;
TextView.setText(response.toString());
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}
我的猜测是要么服务有问题,要么我错误地解释数据。
答
首先,与envelope.get响应()
你在SoapObject响应更换envelope.body - 所以不只是你未必能够的toString。假设您知道服务的响应看起来像您需要映射响应中的数据。 (例如,您的响应可能是一个复杂的XML结构,所以SoapObject响应将反映这一点)。
下面是使用SoapObject和映射响应
http://seesharpgears.blogspot.co.uk/2010/10/ksoap-android-web-service-tutorial-with.html
一个相当完整的例子