Cómo conectarme a mi http: // servidor web localhost desde el emulador de Android en Eclipse

485

¿Qué puedo hacer en el emulador de Android de Eclipse para conectarlo a mi página de servidor web localhost en http://localhosto http://127.0.0.1?

Lo he intentado, pero el emulador todavía toma mi solicitud como una búsqueda en Google de localhost o, peor aún, dice que no encontró la página mientras mi servidor web normalmente se está ejecutando.

Fopa Léon Constantin
fuente
Esta pregunta es sobre el Android Emulador y tiene soluciones aplicables a este caso solos . Si enfrenta este problema cuando usa un dispositivo Android físico , consulte stackoverflow.com/questions/4779963/…
Chris Stratton el

Respuestas:

819

El host local se refiere al dispositivo en el que se ejecuta el código, en este caso el emulador.

Si desea hacer referencia a la computadora que ejecuta el simulador de Android, use la dirección IP 10.0.2.2 en su lugar.

ingrese la descripción de la imagen aquí

Puedes leer más desde aquí .

Pappachan primigenio
fuente
12
¿Por qué referirse a la otra pregunta? simplemente agregue el emulador
Marvin Emil Brach
Gracias por señalar el enlace. Supongo que no estaba allí cuando se publicó la respuesta.
Primal Pappachan
1
@primpap: ¿Puedo usar el nombre de la máquina en lugar de la dirección IP?
KJEjava48
@primpap esto no funciona con la depuración móvil. ¿Hay alguna otra? O estoy cometiendo un error en alguna parte porque 10.0.2.2 está funcionando en el emulador pero no funciona cuando conecto el móvil para la depuración del usb. ?
Jawad Zeb
55
Esta solución solo funciona en emuladores , como se preguntó en la pregunta específica aquí. Aquellos que depuren en un dispositivo Android físico tendrán que usar la dirección IP o el nombre real del servidor, no pueden usar este alias especial de solo emulador. Esta respuesta es buena , pero los lectores deben tener cuidado de que su situación sea aplicable .
Chris Stratton
156

Usar 10.0.2.2para AVD predeterminado y 10.0.3.2para.

qgicup
fuente
Entonces, ¿solo agregamos 10.0.3.2nuestro archivo host?
Ayjay
29

Utilicé 10.0.2.2 con éxito en mi máquina doméstica, pero en el trabajo no funcionó. Después de horas de perder el tiempo, creé una nueva instancia de emulador usando el administrador de dispositivos virtuales de Android (AVD), y finalmente el 10.0.2.2 funcionó.

No sé qué estaba mal con la otra instancia del emulador (la plataforma era la misma), pero si encuentra que 10.0.2.2 no funciona, intente crear una nueva instancia del emulador.

Derwood Kirkwood
fuente
44
Desafortunadamente, no me funciona incluso después de crear una nueva instancia de AVD. ¿Que sugieres? Para reinstalar todo?
Vlado Pandžić
23

Pruebe http://10.0.2.2:8080/dónde 8080está su número de puerto. Funcionó perfectamente. Si lo intentas 10.0.2.2, no funcionará. Necesita agregarle un número de puerto. Además, si se ha instalado Microsoft IIS, intente desactivar esa función desde el panel de control (si usa cualquier sistema operativo Windows) y luego intente como se indicó anteriormente.

SAMBA
fuente
2
¿Qué pasa si las páginas están alojadas en IIS?
maracuja-juice
@Marimba solo descubre en qué puerto sirve su servidor IIS, luego acceda a 10.0.2.2:your_iis_port
StoneLam
esta es una cadena completa y solo funcionó en mi emulador de Android 8.1
CodeToLife
10

de acuerdo con la documentación:

10.0.2.2 - Alias ​​especial para su interfaz de host loopback (es decir, 127.0.0.1 en su máquina de desarrollo)

consulte Emulator Networking para obtener más trucos sobre la red de emulador.

Rahul Tiwari
fuente
3

Necesitaba averiguar la dirección IP del host del sistema para el emulador "Nox App Player". Así es como descubrí que era 172.17.100.2.

  1. Instalado Android Terminal Emulator de la tienda de aplicaciones
  2. Emita un ip link showcomando para mostrar todas las interfaces de red. De particular interés fue la interfaz eth1
  3. Emitir ifconfig eth1comando, muestra net como172.17.100.15/255.255.255.0
  4. Comience a hacer ping a las direcciones a partir de 172.17.100.1, obtuvo un hit en `172.17.100.2 '. No estoy seguro de si un firewall interferiría, pero no lo hizo en mi caso

Tal vez esto pueda ayudar a alguien más a descubrirlo para otros emuladores.

Hugh Jeffner
fuente
1

Si está en Windows, puede ir al sistema simbol y escribir ipconfig y verificar qué ip está asignada a su máquina.

Ricardo
fuente
Esto no es necesario al depurar desde un emulador, ya que puede usar el alias especial para la interfaz de bucle invertido del host citado en las otras respuestas. Sin embargo, si depura desde un dispositivo Android físico, entonces sí, debe determinar la dirección real de su servidor de prueba y usarla.
Chris Stratton
1

En realidad, puede usar localhost:8000para conectarse al host local de su máquina ejecutando el siguiente comando cada vez que ejecuta su emulador (probado solo en Mac):

adb reverse tcp:8000 tcp:8000

Simplemente póngalo en la terminal de Android Studio.

Básicamente, configura un proxy inverso en el que un servidor http que se ejecuta en su teléfono acepta conexiones en un puerto y las conecta a su computadora o viceversa.

Nijat Ahmadli
fuente
0

No sé, tal vez este tema ya esté resuelto, pero cuando intenté hacerlo recientemente en una máquina con Windows, me encontré con muchas dificultades. Entonces mi solución fue realmente simple. Descargué este http://www.lenzg.net/rinetd/rinetd.html suave y seguí sus instrucciones sobre cómo hacer el reenvío de puertos y luego conecté con éxito mi dispositivo Android para hacer el proyecto localhost asp.net y me detuve en mi punto de ruptura.

mi archivo rinetd.conf:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

Donde 10.1.1.20 es mi IP localhost, 82 y 1234 mis puertos También he creado el archivo de baño para facilitar la vida yournameofbathfile.bat, pon ese archivo dentro de la carpeta rined. Mi archivo de baño:

rinetd.exe -c rinetd.conf

Después de iniciar este software, inicie su servidor aps.net e intente acceder desde un dispositivo Android o cualquier dispositivo en su red local (por ejemplo, Computer ABC inicia masilla) y verá que todo funciona. No es necesario ir a la configuración del enrutador o hacer otras cosas complicadas. Espero que esto ayude. Disfrutar.

Jevgenij Kononov
fuente
-1

Otra solución es obtener un dominio gratuito de no-ip.org y apuntarlo a su dirección IP local. Entonces, en lugar de usar http://localhost/yourwebservicepuedes probarhttp://yourdomain.no-ip.org/yourwebservice

Astri
fuente