Cómo configurar la configuración del proxy del emulador de Android

110

Quiero usar el navegador dentro del emulador de Android y quiero usar la configuración de proxy en mi máquina. ¿Cómo puedo configurar esto?

Leyendo los muy buenos manuales de Android, me dicen que debo iniciar Android usando el siguiente comando:

emulator -avd myavd -http-proxy http://168.192.1.2:3300

Pero todavía no puedo usar el navegador del emulador. Tenga en cuenta que estoy usando la dirección IP de mi servidor proxy.

¿Qué estoy haciendo mal?

gath
fuente

Respuestas:

147

La mejor y más simple forma es hacer lo siguiente: Esto se ha hecho para Android Emulator 2.2

  1. Haga clic en Menú
  2. Haga clic en Configuración
  3. Haga clic en Conexiones inalámbricas y redes
  4. Ir a redes móviles
  5. Ir a Nombres de puntos de acceso
  6. Aquí tendrá Telkila Internet, haga clic en él.
  7. En la sección Editar punto de acceso, ingrese el "proxy" y el "puerto"
  8. También proporcione el nombre de usuario y la contraseña, el resto de los campos déjelos en blanco.
krisDrOid
fuente
No funciona con el caso de uso más común de ejecutar Fiddler2 u otro proxy en localhost ... probablemente agregando reenvío de puertos, pero eso también es una molestia
gcb
1
No funciona en el emulador de Android 2.3.3, pero funciona en el emulador 4.1.2 para mí.
azgolfer
24
Esto ya no funciona en imágenes de Android 5 (api 21)
neomega
esta respuesta debe ser la aceptada! ¡Funciona con Burpsuite en mac!
alquimista
¡esto también funcionó con Volley! agregó en caso de que alguien estuviera grabando eso.
ComputerFreak
58

-http-proxy en el emulador de Android

Configuración de ejecución> Aplicación de Android> Aplicación> Destino> Opciones adicionales de línea de comandos del emulador: -http-proxy http: //xx.xxx.xx.xx: 8080

dmotta
fuente
¿Qué versión de eclipse es esa? No veo esta interfaz :(
Salman von Abbas
1
¿Te desplazaste hacia abajo?
Darpan
también configure su emulador
Badre
3
para proxy con nombre de usuario y contraseña use este formato:-http-proxy http://username:password@host:port
ashakirov
error emulator is not recognized as a commanden mi caso ... ¿necesito agregar algo en la variable PATH ??. Estoy usando Android Studio 1.0.1 y tengo un proxy en mi sistema de oficina.
Anil Bhaskar
40

Ahora hay una configuración en el emulador de Android ingrese la descripción de la imagen aquí

Chris Gunawardena
fuente
Trabajó para mi. Mi entorno: entorno MAC OS + emulador de Android y paralelo a Windows 7 con Fiddler Proxy
Arthur Menezes
7
Esta configuración nunca funcionó para mí. Siempre tengo que iniciar el emulador con el comando -http-proxy para que funcione.
gsingh2011
2
Este menú tiene un error recurrente que me está volviendo loco desde mediados de 2017. A veces funciona, a veces no en el mismo AVD. Solo volver a crear el AVD podría ayudar de manera confiable. A veces, el proxy se cae en medio de una sesión. En el entorno corporativo, eso significa que me bloquean mi cuenta por esa mierda.
halxinate
Sin embargo, parece que he encontrado la solución por ahora: configurar ese punto de acceso wifi falso como se indicó anteriormente para usar el proxy ayuda a pesar de que mi proxy requiere la autenticación, que esa configuración del punto de acceso no tiene en absoluto. Solo la URL y el puerto ayudaron a restaurar la conectividad perdida de inmediato.
halxinate
20

Lo intenté después de eliminar http en el nombre del servidor y funcionó para mí.

emulator -avd myavd -http-proxy 168.192.1.2:3300

Yadvendar
fuente
Esto solo funciona para el navegador, pero ninguna solicitud de aplicación pasa por el proxy :(
Felipe Sabino
14

Esto no ayudará al navegador, pero también puede definir un proxy en su código para usar con un cliente HTTP:

// proxy
private static final String PROXY = "123.123.123.123";
// proxy host
private static final HttpHost PROXY_HOST = new HttpHost(PROXY, 8080);
HttpParams httpParameters = new BasicHttpParams();
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST);
kuester2000
fuente
1
No debe poner "127.0.0.1" para String PROXY.
Michaël
kuester2000 echa un vistazo a mi pregunta aquí stackoverflow.com/questions/31723494/…
Zar E Ahmer
9

En Android Studio:

Haga clic en Editar configuración en el menú de la aplicación

ingrese la descripción de la imagen aquí

  1. Vaya a la aplicación o la aplicación de Android (como configuración predeterminada)
  2. toque en el depurador
  3. Toque el comando de inicio LLDB
  4. Toque +
  5. Agrega tu comando -http-proxy http://168.192.1.2:3300

ingrese la descripción de la imagen aquí

eso es todo.

Más cosas interesantes si quieres usar la IP de tu PC, usa este comando:

  • -http-proxy "$(ipconfig getifaddr en0)":8888 en MacOS
  • -http-proxy "$(hostname -i)":8888 en Linux
Maher Abuthraa
fuente
4

Para configurar el servidor proxy, necesitamos establecer la APNSconfiguración. Para hacer esto:

  1. Ir a Configuración

  2. Ir a redes inalámbricas

  3. Ir a redes móviles

  4. Vaya a los nombres de los puntos de acceso. Use el menú para agregar nuevos apns

    Establecer Proxy = localhost

    Configure Port = puerto que está utilizando para hacer un servidor proxy, en mi caso es 8989

    Para configurar el nombre y apn, aquí está el enlace:

    Según tu simtarjeta puedes ver la mesa

saba
fuente
"la autenticación a través del servidor proxy no tuvo éxito" el proxy no requiere autenticación y nunca vio ninguna solicitud de acuerdo con el volcado de tcp.
gcb
3

No tuve suerte hasta que intenté configurar la variable de entorno http_proxy

http://developer.android.com/tools/help/emulator.html

"Si no se proporciona el comando -http-proxy, el emulador busca la variable de entorno http_proxy y automáticamente usa cualquier valor que coincida con el formato descrito anteriormente".

Peter Taylor
fuente
3

Instale Proxifier en su computadora host. Configure el proxy para usar su proxy . No necesitas hacer nada más. Estarás bien. Proxifier captura las llamadas del sistema (incluido el emulador de Android) y las enruta a través del proxy configurado.

Gamma.X
fuente
3
Tenga en cuenta que Proxifier es un software comercial que debe comprarse.
Robert
2

nada de eso funcionó Estoy usando eclipse en Windows de 64 bits: siga los siguientes pasos ... funcionó para mí: Ventana -> Preferencias -> Android -> Iniciar -> Opciones predeterminadas del emulador -http-proxy = "http: / /10.1.8.30:8080 "

en tu ventana de eclipse

Siddharth
fuente
2

En algún momento, incluso después de configurar todo, es posible que no funcione. He probado todos los métodos como

  1. Configuración del proxy en Emulator APN
  2. Configurándolo a través de las preferencias de eclipse -> Android -> Ejecutar

Nada funcionó. Luego hice lo siguiente que funcionó al instante.

Ir a Eclipse Run -> ejecutar configuraciones. En Aplicaciones de Android puede ver su aplicación. Ahora, en el lado derecho, haga clic en la pestaña Destino. Debajo de las 'Opciones adicionales de la línea de comandos del emulador', agregue lo siguiente.

-dns-server < servidores DNS de su máquina local hasta tres > -http-proxy http: // < su proxy >: < su puerto proxy >

El problema aquí es que la configuración del servidor DNS debe ser de su sistema local. Goto cmd pronta y ejecutar ipconfig para ver sus servidores DNS. Lo mismo ocurre con el servidor proxy y el puerto. Todo lo que funcione para su navegador debe incluirse aquí.

Jerokdeep
fuente
2

La forma más fácil es eliminar el APN predeterminado del emulador (en mi caso, es T-mobile) y crear un nuevo APN con la configuración de su proxy.

Nota: probé todas las opciones de línea de comando y también intenté configurar el proxy para el APN predeterminado de los emuladores, pero nada funcionó.

Mahesh
fuente
Estuve luchando por esto más de un mes, pero finalmente lo logré funcionar ... Gracias a @usergo, su respuesta me dio esta pista
Mahesh
2

Dependiendo del entorno que esté utilizando para ejecutar el emulador, consulte los registros para ver cómo se inicia el emulador. El mío comienza como:

C: \ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_23

Luego agrega la opción -http-proxy, en mi caso:

C: \ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_23 -http-proxy 192.168.0.22:8888

Johan Franzén
fuente
1

En caso de que se encuentre en un entorno de proxy e Internet no se esté ejecutando en su emulador, no cambie ninguna configuración en el emulador. Vaya a su proyecto de eclipse, haga clic derecho, haga clic en "Ejecutar como" y luego haga clic en "Ejecutar configuración". En la ventana emergente, elija "Destino" y desplácese un poco hacia abajo, encontrará "Opciones adicionales de la línea de comandos del emulador" Ingrese su configuración de proxy aquí en "Opciones adicionales de la línea de comandos del emulador" como lo ingresé

-http-proxy http: // ee11s040: Om1l2ng3d4n2! [email protected]: 3128

ingrese la descripción de la imagen aquí

Luego inicie un nuevo emulador.

Anil Chahal
fuente
1

la mejor manera de configurar el proxy corporativo con autenticación ntlm es usar cntlm:

http://cntlm.sourceforge.net/

Instalar y configurar en C: \ Archivos de programa \ Cntlm \ cntlm.ini Por defecto, cntlm, escucha 127.0.0.1:3128

En el dispositivo Android, configure un nuevo APN con el host proxy 10.0.2.2 y el puerto 3128 10.0.2.2 es un alias especial para la interfaz de bucle invertido de su host (127.0.0.1 en su máquina de desarrollo)

ver también http://developer.android.com/tools/devices/emulator.html#emulatornetworking

Saludos

usergo
fuente
1

¿Está seguro de que su dirección es 168.192.1.2 y no 192.168.1.2?

Observe los dos primeros números intercambiados.

Josch
fuente
1

En la consola, inicie el siguiente comando:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080
un_suscriptor
fuente
0

Tener el emulador de Android AVD:

  1. Abra el simulador (".. \ android-sdk \ AVD Manager.exe")
  2. Ir a herramientas
  3. Ir a Opciones
  4. En la configuración de Proxy:

En el primer campo (HTTP Proxy Server) configure solo la dirección IP donde está su proxy (XXX.XXX.XXX.XXX) en el segundo campo configure el puerto de su proxy (ejemplo: 8080)

Luego, haga clic en Cerrar en la ventana e inicie el emulador

---- Agregado ... Entonces los pasos de alex funcionan en mi caso:

Click on Menu
Click on Settings
Click on Wireless & Networks
Go to Mobile Networks
Go to Access Point Names
Here you will Telkila Internet (or other name), click on it.
In the Edit access point section, input the "proxy" and "port"
user1981081
fuente
Esto solo establece la configuración de proxy para el administrador de SDK, para descargar archivos SDK.
Brad
0

Puede configurar el proxy en su aplicación. Esto se puede hacer usando la clase de Configuración. Por ejemplo, puede agregar la siguiente línea a su método "onCreate".

 Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "myproxy:8080"); 

Para cambiar la configuración del proxy, debe tener el permiso android.permission.WRITE_SETTINGS en su archivo AndroidManifest.xml.

Sachini Samarasinghe
fuente
0

Para algunos leanbackemuladores (de TV), puede usar cmd:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 - es un puerto de proxy en una máquina local (host), por lo que en una máquina local el proxy http será 127.0.0.1:8888

Para eliminar el proxy (ejecutar secuencialmente en la línea cmd):

adb shell settings delete global http_proxy

adb shell settings put global global_http_proxy_host ""

adb shell settings put global global_http_proxy_port ""

ultraon
fuente