Como definir as configurações de proxy do emulador Android

110

Quero usar o navegador dentro do emulador Android e quero usar as configurações de proxy na minha máquina. Como posso configurar isso?

Lendo os excelentes manuais do Android, eles me dizem que devo iniciar o Android usando o seguinte comando:

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

Mas ainda não consigo usar o navegador do emulador. Observe que estou usando o endereço IP do meu servidor proxy.

O que estou fazendo de errado?

gath
fonte

Respostas:

147

A maneira mais simples e melhor é fazer o seguinte: Isso foi feito para o Android Emulator 2.2

  1. Clique no Menu
  2. Clique em Configurações
  3. Clique em Wireless & Networks
  4. Vá para redes móveis
  5. Vá para nomes de pontos de acesso
  6. Aqui você vai Telkila Internet, clique nele.
  7. Na seção Editar ponto de acesso, insira o "proxy" e a "porta"
  8. Forneça também o nome de usuário e a senha, o restante dos campos deixe-os em branco.
krisDrOid
fonte
Não funciona com o caso de uso mais comum de execução do Fiddler2 ou outro proxy no localhost .... provavelmente adicionando encaminhamento de porta, mas isso também é uma dor
gcb
1
Ele não funciona no emulador do Android 2.3.3, mas funciona no emulador 4.1.2 para mim.
azgolfer 01 de
24
Isso não funciona mais nas imagens do Android 5 (api 21)
neomega
esta resposta deve ser a aceita! Funciona com Burpsuite no mac!
alquimista de
isso também funcionou com o Volley! adicionado apenas no caso de alguém estar usando o grep.
computingfreak
58

-http-proxy no Android Emulator

Em Run Configuration> Android Application> App> Target> Additional Emulator Command Line Options: -http-proxy http: //xx.xxx.xx.xx: 8080

dmotta
fonte
que versão do eclipse é essa? não vejo esta interface :(
Salman von Abbas,
1
Você rolou para baixo?
Darpan
também configure seu emulador
Badre
3
para proxy com nome de usuário e senha, use este formato:-http-proxy http://username:password@host:port
ashakirov
erro emulator is not recognized as a commandno meu caso .. eu preciso adicionar algo na variável PATH ??. Estou usando o Android Studio 1.0.1 e tendo proxy no meu sistema de escritório.
Anil Bhaskar
40

Agora há uma configuração no emulador Android insira a descrição da imagem aqui

Chris Gunawardena
fonte
Funcionou para mim. Meu ambiente: ambiente MAC OS + emulador de Android e paralela ao Windows 7 com proxy fiddler
Arthur Menezes
7
Essa configuração nunca funcionou para mim. Sempre preciso iniciar o emulador com o comando -http-proxy para fazê-lo funcionar.
gsingh2011
2
Este menu tem um bug recorrente que está me deixando louco desde meados de 2017. Às vezes funciona, às vezes não no mesmo AVD. Apenas recriar o AVD poderia ajudar de forma confiável. Às vezes, o proxy cai no meio de uma sessão! No ambiente corporativo, isso significa que estou ficando sem acesso à minha conta por causa dessa merda.
halxinate de
Porém, parece que encontrei a solução por enquanto: configurar aquele hotspot wi-fi falso como acima para usar o proxy ajuda, embora meu proxy exija a autenticação, o que essa configuração de hotspot não tem. Apenas URL e porta ajudaram a restaurar a conectividade perdida imediatamente.
halxinate de
20

Tentei remover http no nome do servidor e funcionou para mim.

emulator -avd myavd -http-proxy 168.192.1.2:3300

Yadvendar
fonte
Isso funciona apenas para navegador, mas nenhuma solicitação de aplicativo está passando pelo proxy :(
Felipe Sabino
14

Isso não ajudará no navegador, mas você também pode definir um proxy em seu código para usar com um 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
fonte
1
Você não deve colocar "127.0.0.1" para String PROXY.
Michaël,
kuester2000, dê uma olhada na minha pergunta aqui stackoverflow.com/questions/31723494/…
Zar E Ahmer
9

No Android Studio:

Clique em Editar configuração no menu do aplicativo

insira a descrição da imagem aqui

  1. Vá para o aplicativo ou aplicativo Android (como configurações padrão)
  2. toque no depurador
  3. Toque no comando de inicialização do LLDB
  4. Toque em +
  5. Adicionar seu comando -http-proxy http://168.192.1.2:3300

insira a descrição da imagem aqui

é isso.

Mais coisas legais se você quiser usar o IP do seu PC, use este comando:

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

Para definir o servidor proxy, precisamos definir a APNSconfiguração. Para fazer isso:

  1. Vá para a configuração

  2. Vá para wireless e redes

  3. Ir para redes móveis

  4. Vá para os nomes dos pontos de acesso. Use o menu para adicionar novos apns

    Definir Proxy = localhost

    Defina a porta = porta que você está usando para fazer o servidor proxy, no meu caso é 8989

    Para definir o nome e apn, aqui está o link:

    De acordo com seu simcartão você pode ver a tabela

saba
fonte
O proxy "a autenticação através do servidor proxy não foi bem-sucedida" não requer autenticação e nunca viu nenhum pedido de acordo com o despejo tcp.
gcb
3

Não tive sorte até tentar definir a variável de ambiente http_proxy

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

"Se o comando -http-proxy não for fornecido, o emulador procura a variável de ambiente http_proxy e usa automaticamente qualquer valor correspondente ao formato descrito acima."

Peter Taylor
fonte
3

Instale o Proxifier em seu computador host. Configure o proxy para usar seu proxy . Você não precisa fazer mais nada. Você vai ficar bem. O proxy intercepta as chamadas do sistema (incluindo o emulador do Android) e roteia por meio do proxy configurado.

Gamma.X
fonte
3
Observe que Proxifier é um software comercial que deve ser comprado.
Robert
2

nada disso funcionou, estou usando o Eclipse no windows 64-bit: siga os seguintes passos ... funcionou para mim: Window -> Preferences -> Android -> Launch -> Default Emulator Options -http-proxy = "http: / /10.1.8.30:8080 "

em sua janela de eclipse

Siddharth
fonte
2

Às vezes, mesmo depois de definir tudo, pode não funcionar. Eu tentei todos os métodos como

  1. Configurando o proxy no emulador APN
  2. Configurando através das preferências do Eclipse -> Android -> Iniciar

Nada funcionou. Então eu fiz o seguinte, que funcionou instantaneamente.

Vá para eclipse Run -> execute configurações. Em Aplicativos Android, você pode ver seu aplicativo. Agora, no lado direito, clique na guia Destino. Em 'Opções adicionais da linha de comando do emulador', adicione o seguinte.

-dns-server < servidores DNS de sua máquina local até três > -http-proxy http: // < seu proxy >: < sua porta proxy >

O problema aqui é que a configuração do servidor DNS deve ser do seu sistema local. Goto cmd rápida e executar ipconfig para verificar os seus servidores DNS. O mesmo acontece com o servidor proxy e a porta. Tudo o que funciona para o seu navegador deve ser colocado aqui.

Jerokdeep
fonte
2

A maneira mais fácil é excluir o APN padrão do emulador (no meu caso é o T-mobile) e criar um novo APN com suas configurações de proxy.

Nota: tentei todas as opções de linha de comando e também tentei definir o proxy para o APN padrão dos emuladores, mas nada funcionou.

Mahesh
fonte
Eu estava lutando por isso por mais de um mês, mas finalmente consegui funcionar ... Graças a @usergo, sua resposta me deu esta pista
Mahesh
2

Dependendo de qual ambiente você está usando para executar o emulador, verifique os logs para ver como o emulador foi iniciado. O meu começou como:

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

Em seguida, você adiciona a opção -http-proxy, no meu caso:

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

Johan Franzén
fonte
1

Caso você esteja em um ambiente de proxy e a Internet não esteja funcionando em seu emulador, não altere nenhuma configuração no emulador. Vá para o seu projeto eclipse, clique com o botão direito, clique em "Executar como" e em "Executar configuração". Na janela pop-up, escolha "Target" e role um pouco para baixo, você encontrará "Additional Emulator Command Line Options". Insira sua configuração de proxy aqui em "Additional Emulator Command Line Options" como eu inseri

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

insira a descrição da imagem aqui

Em seguida, inicie um novo emulador.

Anil Chahal
fonte
1

a melhor maneira de definir o proxy corporativo com autenticação ntlm é usar cntlm:

http://cntlm.sourceforge.net/

Instale e configure em C: \ Arquivos de programas \ Cntlm \ cntlm.ini Por padrão cntlm, escuta 127.0.0.1:3128

No dispositivo Android, defina um novo APN com host proxy 10.0.2.2 e a porta 3128 10.0.2.2 é um alias especial para sua interface de loopback de host (127.0.0.1 em sua máquina de desenvolvimento)

consulte também http://developer.android.com/tools/devices/emulator.html#emulatornetworking

Saudações

usergo
fonte
1

Tem certeza de que seu endereço é 168.192.1.2 e não 192.168.1.2?

Observe os dois primeiros números trocados.

Josch
fonte
1

No console, inicie o próximo comando:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080
a_subscriber
fonte
0

Ter o emulador de Android AVD:

  1. Abra o simulador (".. \ android-sdk \ AVD Manager.exe")
  2. Vá para Ferramentas
  3. Vá para Opções
  4. Nas configurações de proxy:

No primeiro campo (Servidor Proxy HTTP) defina apenas o endereço IP onde está o seu proxy (XXX.XXX.XXX.XXX) no segundo campo defina a porta do seu proxy (exemplo: 8080)

Em seguida, clique em Fechar na janela e inicie o emulador

---- Adicionado ... Então o alex steps funciona no meu 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
fonte
Isso apenas define as configurações de proxy para o gerenciador SDK, para baixar arquivos SDK.
Brad
0

Você pode definir o proxy em seu aplicativo. Isso pode ser feito usando a classe Configurações. Por exemplo, você pode adicionar a seguinte linha ao seu método "onCreate".

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

Para alterar as configurações de proxy, você precisa ter a permissão android.permission.WRITE_SETTINGS em seu arquivo AndroidManifest.xml.

Sachini Samarasinghe
fonte
0

Para alguns leanbackemuladores (de TV), você pode usar cmd:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 - é uma porta de proxy em uma máquina local (host), portanto, em uma máquina local o proxy http será 127.0.0.1:8888

Para remover o proxy (execute sequencialmente na linha 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
fonte