2012-02-19 30 views
7

Soy nuevo en Android, por lo que esta pregunta podría tener una respuesta simple (podría haberme perdido algo). Estoy tratando de hacer un cliente REST con la ayuda del marco de descanso de Google (porque Jersey no parecía funcionar). Cuando trato de ejecutar el cliente, consigo esta advertencia:Android No se puede resolver el host

W/System.err(728): java.net.UnknownHostException: Unable to resolve host "my.ip:8080": No address associated with hostname

y entonces consigo unas pocas excepciones, pero supongo que esta es la causa fundamental.

que tienen el permiso internet:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.maze.client" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="15" /> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 


<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".RestingClientActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

Si necesita cualquier información adicional, por favor hágamelo saber.

  • En la advertencia reemplacé mi IP con "mi.ip" (está hecho intencionalmente, pero en el original está bien).
+1

has necesitado reiniciar emulador, tengo esta excepción muchas veces, pero después de reiniciar el emulador, el problema se resuelve. intente si no ha intentado –

+0

@NixitPatel He reiniciado el emulador varias veces y luego reinicié el eclipse, pero sigo recibiendo este error. – Dragos

+0

Intente ejecutarlo en un dispositivo; a veces el emulador se estropea. Sé que tengo un problema similar con la transmisión de archivos .mjpeg en el emulador; cuelga en el emulador pero funciona perfectamente en mi dispositivo. –

Respuesta

1

Si publica el fragmento de código en el que realiza la conexión al servidor, será más fácil ayudarle. Pero, probablemente su problema esté en crear el URI para ser llamado. Ejemplo:

URI uri = URIUtils.createURI("http", "your-ip", 8080, "/path/to/webservice", 
     URLEncodedUtils.format(params, "UTF-8"), null); 
HttpClient client = new DefaultHttpClient(); 
HttpGet get = new HttpGet(uri); 
response = client.execute(get); 

Por lo tanto, si llama al método de ejecución con un URI incorrecto o no válido, podría tener un problema.

O, a veces, cuando mantiene su AVD abierto y cambia la red que está utilizando, por ejemplo, sale de la oficina y comienza a utilizar su wifi doméstico, debería tener un problema como este.

1

Creo que tuve el mismo problema que el OP, sé que esta es una pregunta antigua, pero publicaré mis hallazgos de todos modos.

El problema es que los métodos de marco de reposo como get() pasan la url a través de sus ayudantes de conexión, y espera que proporciones el puerto como el segundo parámetro.

Así que tomando el ejemplo de OP, en lugar de:

Resting.get('my.ip:8080'); 

su llamada debería ser:

Resting.get('my.ip', 8080) 

la esperanza de que ayude a alguien :)

Cuestiones relacionadas