Ksoap2 casting getResponse ()

Llamar a un servicio web .net SOAP1.1 desde android usando ksoap2 lib Encontré un problema de respuesta de casting a un objeto personalizado. Por ejemplo, el código siguiente se llama correcto después de httpTransport.call (soapAction, soapEnvelope); Y tienen datos dentro. Pero no puedo lanzarlo a un objeto específico ni a SoapObject o Vector como he visto en varios ejemplos, obtengo CastException o nada simple. Si alguien sabe cómo tratar con ella, por favor ayuda.

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; } 

3 Solutions collect form web for “Ksoap2 casting getResponse ()”

En primer lugar tratar de ver si usted está recibiendo cualquier respuesta.

 Object obj = envelope.bodyIn; 

Si este obj no es nulo, intente lo siguiente.

 SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn; 

Mi conjetura es esto debe trabajar si usted está consiguiendo una cierta respuesta.

Debe informar a kSOAP qué objeto StatusSetting es y how convertir una respuesta SOAP en un objeto StatusSetting .

Espero que esto sea útil para usted:

 SoapObject result = (SoapObject) envelope.bodyIn; String response = result.getProperty(0).toString(); 

algo como eso:

 SoapObject response = (SoapObject) envelope.getResponse(); yourArray=new String[response.getPropertyCount()]; for(int i=0;i<response.getPropertyCount();i++){ Object property = response.getProperty(i); if(property instanceof SoapObject){ SoapObject final_object = (SoapObject) property; yourArray[i] = final_object.getProperty("YOUR_PROPERTY_NAME"); } } 
  • Comprobación de la disponibilidad del servicio web en android
  • Cuál es el papel de la clave de la aplicación y la clave secreta en cada SDK
  • Autenticación entre la aplicación de Android y el servicio web + facebook login
  • Necesidad de transferir el archivo .apk mediante webservice
  • Cómo llamar a un servicio web SOAP en Android
  • Conectando MySql con Android sin usar PHP
  • Android, Ksoap, webService
  • Envío de SQLite db al servicio web
  • Cliente Android para servicio web REST con seguridad básica
  • Solicitudes seguras de servicio web
  • Aplicación de Android CursorWindow error de memoria
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.