java.net.ConnectException: localhost / 127.0.0.1: 8080 - Conexión rechazada

Respuestas:

292

Como no ha especificado que está conectado a un servidor desde el dispositivo o emulador, supongo que está utilizando su aplicación en el emulador.

Si está refiriendo su host local en su sistema desde el emulador de Android, entonces debe usar el http://10.0.2.2:8080/emulador de Android porque se ejecuta en una máquina virtual, por lo tanto, aquí 127.0.0.1o localhostserá la propia dirección de loopback del emulador.

Consulte: Emulador de redes

Vikas Patidar
fuente
Sí, exactamente estoy haciendo lo mismo. ¿Puedes explicarlo en detalle? Dónde cambiar la dirección IP a 10.0.2.2. Esta es la carpeta a la que estoy intentando acceder desde el servidor xampp localhost: 8080 / aero
pradeep
1
Lo tengo, tenemos que cambiar la ruta dada en la aplicación como http: // localhost: 8080 / link / to / resource.xml to http://10.0.2.2:8080/link/to/resource.xml
pradeep
@VikasPatidar, ¿puedes decirme dónde cambiar esta dirección a 10.0.2.2 en mi código como soy un novato?
AndroidOptimist
1
por ejemplo, si su URL es como http://localhost:8080/Getdata.phpo http://127.0.0.1:8080/Getdata.phpentonces tiene que cambiarla como usohttp://10.0.2.2:8080/Getdata.php
Vikas Patidar
1
Reemplácelo 10.0.2.2con 10.0.3.2si está ejecutando Genymotion.
Jacob R
25

en android

Reemplazar: String webServiceUrl = "http://localhost:8080/Service1.asmx"

Con : String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"

¡Buena suerte!

PhuocLuong
fuente
1
donde en que archivo?
user3475052
19

localhost y 127.0.0.1 son ambas formas de decir "la máquina actual". Entonces, localhost en su PC es la PC y localhost en Android es el teléfono. Dado que su teléfono no está ejecutando un servidor web, por supuesto, rechazará la conexión.

Necesita obtener la dirección IP de su máquina (use ipconfig en Windows para averiguarlo) y usarla en lugar de 127.0.0.1. Es posible que esto aún no funcione dependiendo de cómo estén configuradas su red / firewall. Pero ese es un tema completamente diferente.

skorulis
fuente
¿Puedes explicar eso con más detalle? Necesito cambiar la dirección IP de mi máquina
pradeep
2
Si escribe ipconfig, le dirá la dirección IP de su máquina. Lo más probable es que sea una dirección IP privada para su red, por lo que solo será accesible desde dispositivos que estén en la misma red, por lo que WIFI probablemente funcionará, probablemente 3G no.
skorulis
@skorulis sí, necesitamos establecer la URL de nuestra máquina que es diferente de 127.0.0.1 porque estamos conectados a redes en el código de nuestra aplicación.
Ravi Yadav
También puede establecer una IP específica para su computadora en la que se ejecuta el servidor. Utilice esta IP en su aplicación de Android. Eso es mejor porque en el caso de que reinicie su enrutador o computadora, a menudo obtendrá una nueva IP para la computadora y tendrá que cambiarla en su código.
DOUBL3P
11
  1. Agregar permiso de Internet en el archivo Androidmanifest.xml

usa-permiso android: nombre = "android.permission.INTERNET

  1. Abrir cmd en windows
  2. escriba "ipconfig" y luego presione enter
  3. busque la dirección IPv4. . . . . . . . . . . : 192.168.XX
  4. use esta URL " http: //192.168.XX: your_virtual_server_port / your_service.php "
Omid Rostami
fuente
Gracias, esto funciona para el emulador NOX y Xammp.
Misam Mehmannavaz
9

Solo tiene que usar su dirección IP local (pero real) y número de puerto como este:

String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"

Y asegúrese de haber configurado el permiso de Internet dentro del manifiesto

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

Señor mostaza
fuente
3

está trabajando para mí. Yo uso genymotion para ejecutar la aplicación.

1. Primero me revisaron mi IP local. Ir al modo de comando >> Y escribir ipconfig. Ejemplo: Windows 10 >> busque cmd >> luego escriba ipconfig. 2. Luego obtenga su información de IP local >>> 3. Utilice dar su IP de host local y la IP de caja virtual. Necesita usar la caja virtual ip para genymotion. Consulte la siguiente captura de pantalla. Puede debajo de cualquier ip en la red de host virtualbox ingrese la descripción de la imagen aquí

Shohel Rana
fuente
2

Reemplazar localhost con 10.0.2.2 es correcto, pero también puede reemplazar localhost con la ip de su máquina física (es mejor para propósitos de depuración). Ofc, si dhcp proporciona ip, tendrá que cambiarlo cada vez ...

¡Buena suerte!

ancab
fuente
0

La solución es muy sencilla.

1 Agregue permiso de Internet en el archivo Androidmanifest.xml

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

[2] Cambia tu archivo httpd.config

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

TO

Order Deny,Allow
Allow from all
Allow from 127.0.0.1

And restart your server.

[3] Y paso más impotente. HAGA SU RED COMO SU RED DOMÉSTICA

Vaya a Panel de control> Redes e Internet> Centro de redes y recursos compartidos

Click on your Network and select HOME NETWORK

ingrese la descripción de la imagen aquí

Mehul
fuente