Android: ksoap, "UnknownHostException: host no resuelto" dependiendo de la API

gracias por tu atención.

Tengo un problema en usar ksoap2 para llamar a un servicio web vía android.

Tengo alguna función para llamar a un servicio web.

public String CallWebServiceFunction() { String WSDL_TARGET_NAMESPACE = "http://MyWeb.com/"; String SOAP_ADDRESS = "http://MyWeb.com/pvws.asmx"; String SOAP_ACTION = "http://MyWeb.com/SoapAction"; String OPERATION_NAME = "SoapAction"; SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME); PropertyInfo prop1 = new PropertyInfo(); prop1.setName("prop1"); prop1.setValue("1"); request.addProperty(prop1); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request); HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); Object response=null; try { httpTransport.call(SOAP_ACTION, envelope); response = envelope.getResponse(); } catch (Exception exception) { response=exception.toString(); } return response.toString(); } 

Cuando utilizo el emulador (o el dispositivo verdadero), que usando la API 16 o arriba (Android 4.x) – todo está bien , la función consigue la respuesta correcta del webservice. Pero cuando uso emulador (o dispositivo real) con API 7 (Android 2.x) – entonces tengo una excepción

"Java.net.UnknownHostException: El host no está resuelto: MyWeb.com:80"

Utilizo el mismo código en ambos casos, intentando uno tras otro – y obtengo resultados diferentes

¿Alguien tiene alguna idea?

UPD1 : La sección de permisos de mi manifiesto es

 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

UPD2 : Hipótesis . Inicialmente creé mi aplicación para targetSdkVersion = 16. Por lo tanto, uso código multi-threaded, cuando llamo webservice a través de Internet. Tal vez, cuando funciona con API7, el código fuente no debe ser multi-threaded?

UPD3 : La hipótesis estaba equivocada. Llamar a webservice desde el hilo principal causa la misma excepción.

Pero me di cuenta, que cuando ejecuto mi proyecto en otro equipo – funciona correctamente. A pesar de que uso el mismo código.

 UnknownHostException:host is unresolved 

Asegúrate de haber añadido permiso en tu AndroidManifest.xml como este

 <uses-permission android:name="android.permission.INTERNET" /> 

Y también Asegúrese de que su adición dentro <manifest> etiqueta no dentro de otras etiquetas como <application> etc

PD.

Asegúrese también de los siguientes permisos

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

Creo que para Android 2.x ausente android.permission.READ_PHONE_STATE .

Intentalo,

Compruebe la conexión de datos o el wifi está activado

A continuación, vaya a manifestar y comprobar la Internet

 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
  • Interacción entre Java y Android
  • ¿Cómo puedo convertir los datos de InputStream en String en SOAP Webservices de Android
  • Llame al servicio web .NET en Android
  • Envío de XML a un servicio web en Android
  • Analizador de XML común de Android
  • No se pueden llamar métodos de servicio web desde el emulador de proyectos android
  • Mejor manera de crear un servicio Web en Android
  • Cómo utilizar el tipo de llamada con EventBus
  • No se puede deserializar la instancia del objeto de START_ARRAY token en Spring Webservice
  • HttpURLConnection getResponseCode () deos no devuelve si no hay conexión a Internet
  • Cómo pasar String array a webservice usando ksoap2?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.