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"); } } 
  • Android Fatal señal 11 (SIGSEGV) en 0x00000040 (código = 1) Error
  • No se pueden serializar las fechas con ksoap2
  • Excepción "Caracteres ilegales en la consulta en el índice -" en Android
  • Creación de servicio web para aplicaciones de Android
  • ¿La mejor práctica para implementar retroalimentación de retorno a la actividad recreada?
  • Obtener longitud desconocidaHttpInputStream al obtener InputStream de HttpURLConnection en android
  • Desarrollador web visual Servicio web en depuración HTTP / 1.1 400 Solicitud incorrecta
  • No se puede llamar a REST API en android
  • Creación de un WebService ASP.net que devuelve JSON en lugar de XML
  • SOAP xml a cambio - Android
  • Cómo hacer que el servicio Web ASP.NET Web API esté disponible en la red local
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.