Llamando a .NET SOAP1.1 servicio web desde android usando ksoap2 lib Me encontré con un problema de conversión de respuesta a un objeto personalizado. Por ejemplo, el código siguiente se llama correcto después de httpTransport.call (soapAction, soapEnvelope); y tener datos adentro. Pero no puedo convertirlo en un objeto específico ni para SoapObject o Vector, como vi en varios ejemplos, obtengo CastException o nada simple. Si alguien sabe cómo manejarlo, por favor ayuda.ksoap2 casting getResponse()
public StatusSetting[] GetAllStatuses(String installation){
StatusSetting[] statuses = null;
String methodName = "GetAllStatuses";
String soapAction = NAMESPACE + "/" + methodName;
SoapObject request = new SoapObject(NAMESPACE, methodName);
request.addProperty("installation", installation);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
AndroidHttpTransport httpTransport = new AndroidHttpTransport(SERVICE_URL);
try {
httpTransport.call(soapAction, soapEnvelope);
statuses = (StatusSetting[])soapEnvelope.getResponse();
} catch (Exception e) {
e.printStackTrace();
}
return statuses;
}
Gracias, funciona, no tengo datos de la SoapObject. ¿Podría darnos una dirección sobre cómo analizar SoapObject? Me refiero a leer propiedades de alguna manera y buscar los datos que necesito. Intenté obtener resultsRequestSOAP.properties (funciona como datos json) en modo de depuración, pero las propiedades no son un método abierto para usar en el código. – Maxim
Conozco dos formas de analizar el SoapObject. 1. Implemente la interfaz 'org.ksoap2.serialization.Marshal' y regístrese para la etiqueta SOAP correspondiente. 2. Otra forma es usar los métodos 'getProperty()' y 'getAttribute()' de SoapObject para obtener los valores correspondientes. HTH. –
También mira esto. http://www.drdobbs.com/article/printableArticle.jhtml;jsessionid=OKCYS4LV2OQDPQE1GHPCKHWATMY32JVN?articleId=208800166&dept_url=/mobility/ –