2011-09-17 13 views
5

Tengo un servidor de API REST de python ejecutándose en mi computadora portátil. Estoy tratando de escribir un cliente de reposo en Android (usando Eclipse ADT, etc.) para contactarlo usando las bibliotecas de clientes de Apache (org.apache.http.client).No se puede contactar la máquina host (10.0.2.2) desde el emulador

El código es muy simple, y básicamente hace lo siguiente -

HttpGet httpget = new HttpGet(new URI("http://10.0.2.2:8000/user?username=tim")); 
HttpResponse response = httpclient.execute(httpget); 

Sin embargo, a ejecutarlo, excepciones a cabo con un tiempo muerto excepción. No puedo acceder a la URL incluso desde el navegador en el emulador.

Detalles de la excepción

org.apache.http.conn.ConnectTimeoutException: Connect to /10.0.2.2:8000 timed out 

Sin embargo, he intentado usar el cliente de la cresta en Chrome en mi ordenador portátil, y soy capaz de consultar la multa del servidor REST.

+1

¿Ha podido resolver esto? He estado experimentando exactamente el mismo problema y estoy un poco atascado resolviéndolo ... –

Respuesta

0

¿Es posible que la máquina no esté en su red? Es decir, ¿está del otro lado de un enrutador, en algún lado de Internet? Porque las direcciones comienzan con "10." están reservados como direcciones privadas y no pueden enrutarse.

Ver http://en.wikipedia.org/wiki/Private_network para obtener más información

0

que tenía el mismo problema y así es como me di cuenta de la causa:

ABANDONARLE emulador. Comience su servidor local. En el navegador, debe poder acceder a "http: // localhost: 8000/user? Username = tim" y obtener alguna respuesta. Si obtienes un tiempo de espera, es probable que tu servidor no se esté ejecutando. En mi caso, mi servidor python tenía un punto de ruptura establecido y estaba atrapado allí. Una vez que lo dejé funcionar, pude ver las respuestas en el navegador y posteriormente en el emulador (usando 10.0.2.2).

Cuestiones relacionadas