Cómo probar AndroidHttpClient

El nombre de host localhost (junto con la dirección de bucle invertido 127.0.0.1) es algo especial. Es como la palabra “yo”. Si digo “yo”, me refiero a una persona diferente a la tuya cuando dices “yo”, a pesar de que usamos la misma palabra.

Supongamos que tiene un servidor web ejecutándose en su máquina de desarrollo. Si usa el navegador en esa misma máquina, entonces la dirección “yo” de localhost tiene sentido. El miembro de su equipo en una computadora diferente no puede usar localhost y conectarse a su servidor web.

Un dispositivo Android que ejecuta una aplicación que realiza acceso remoto no es diferente. Al probar su aplicación, es probable que desee conectar el dispositivo a su red de desarrollo a través de wi-fi. Ahora su dispositivo puede conectarse a su máquina de desarrollo, pero necesitará una dirección.

Debe determinar el nombre de host y la dirección de su máquina de desarrollo, luego usar esa información en su aplicación para conectarse. Dado que su aplicación probablemente estará hablando con un servidor de producción, probablemente necesitará un código de “solo desarrollo” para cambiar a su servidor de prueba. [Por cierto, si alguien tiene un buen método para tratar con varios servidores, me encantaría escucharlo.] Espero que tenga una persona de tipo administrador del sistema que pueda ayudarlo si lo necesita.

Cuando comencé a desarrollar, usé la emulación, y me tomó un tiempo descubrir que localhost no es la dirección del sistema operativo host, lo que quieres es la dirección del sistema operativo host. Tenga en cuenta que esa dirección varía entre los emuladores.

Si está utilizando el emulador basado en QEMU que se incluye con el SDK, la dirección del sistema operativo del host es 10.0.2.2. Consulte esta página web para obtener más detalles: Uso del emulador.

Si está utilizando el excelente emulador de Android Genymotion que se basa en VirtualBox (y si no lo está, debería hacerlo porque destruye el emulador de valores) la dirección del sistema operativo host es 10.0.3.2.

De hecho, tengo un código de solo desarrollo que verifica el fabricante del dispositivo y establece la dirección del servidor remoto de manera diferente dependiendo de qué dispositivo o emulador se detecte.

Si está ejecutando un servidor web en el host del emulador, asegúrese de que su firewall esté configurado para acceder, ya que el emulador parece una máquina externa al firewall.

También puede usar adb para probar la conectividad desde su dispositivo: adb shell ping

Espero que sea útil.

PS Preste atención a los consejos de Miguel y prefiera HttpURLConnection a AndroidHttpClient .

Intenta usar un servidor web gratuito como hostinger. O, si su computadora y el teléfono Android están conectados a la misma red, intente dar la dirección IP de la computadora como la URL. Recuerde mencionar también el número de puerto de su servidor (Apache, nginx)

Si está desarrollando en Windows, publique en IIS local y tenga una URL estática o en Apache y pruebe desde allí.

Use ipaddress de su máquina ya que Android tratará a localhost como su propio servidor