Proxy que requer autenticação com Android Emulator
-
09-06-2019 - |
Pergunta
Alguém conseguiu fazer o Android Emulator funcionar atrás de um proxy que requer autenticação?
Eu tentei definir o argumento -http-proxy como
http://DOMAIN/USERNAME:PASSWORD@IP:PORT
mas não estou tendo sucesso.
Tentei seguir os documentos sem sucesso.Eu também tentei o -verbose-proxy
configuração, mas isso parece não existir mais.
Alguma indicação?
Solução
Consegui fazer isso no emulador Adndroid 2.2.
Go to "Settings" -> "Wireless & Networks" -> "Mobile Networks" -> "Access Point Names" -> "Telkila"
Lá define o nome do host proxy na propriedade "Proxy" e a porta proxy na propriedade "Port"
Outras dicas
Parece que o SDK 1.5 em diante, o -http-proxy
flag também não funciona.O que funcionou para mim foi inicializar a imagem do Android no emulador e, quando o Android estiver em execução, vá para Home > Menu > Settings > Wireless Controls > Mobile Networks > Access Point Names
e, em seguida, defina as configurações de proxy http para o ponto de acesso padrão.
Com as configurações de proxy APN definidas, posso fazer com que o navegador do emulador navegue na web.No entanto, outras coisas como o Maps ainda não funcionam.
Lembro-me de ter o mesmo problema - Depois de pesquisar na web, encontrei esta solução - Na linha de comando,
1. > adb shell
2. # sqlite3 /data/data/com.android.providers.settings/databases/settings.db
3. sqlite> INSERT INTO system VALUES(99,’http_proxy', 'proxy:port');
4. sqlite>.exit
EDITAR:Resposta editada para refletir a versão mais recente do Android.
Aparentemente, esse problema ocorre apenas com Android 2.xe Windows.Há um bug aberto aqui:http://code.google.com/p/android/issues/detail?id=5508&q=emulator%20proxy&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars
Encontre o arquivo
androidtool.cfg
noC:\Documents and Settings\YOUR USER NAME\.android\
Adicione esta linha:
http.proxyLogin=USER@PASSWORD
Salve o arquivo e tente abrir o Android SDK.
Para configurar o servidor proxy, precisamos definir a configuração de APNS.Para fazer isso:
- Vá para configuração
- Vá para redes sem fio e redes
- Vá para redes móveis
- Vá para os nomes dos pontos de acesso.Use o menu para adicionar novos apns
- Definir proxy = localhost
- Defina Port = porta que você está usando para fazer o servidor proxy, no meu caso é 8989
Para configurar Nome e apn aqui está o link:
De acordo com o seu cartão SIM você pode ver a tabela
Isso funcionou para mim: http://code.google.com/p/android/issues/detail?id=5508#c39
Aparentemente há um bug no emulador que obriga você a usar o endereço IP do proxy em vez do nome...
Jay, embora esse seja o local ideal para esta informação, ela não foi atualizada para 2.1.Abaixo listarei os métodos que atualmente NÃO funcionam para o emulador 2.1.
O argumento http-post não funciona para o emulador 2.1.Definir um proxy na lista APN no emulador 2.1 não funciona.Inserir o proxy diretamente na tabela do sistema via sql-lite não funciona com 2.1.
Na verdade, a ÚNICA maneira de fazer com que o navegador se conecte à Internet por meio do emulador que encontrei no 2.1 é NÃO usar proxy.Espero realmente que isso seja resolvido logo, pois há muitas pessoas com o mesmo problema.
Inicie o prompt de comando.
Vá até a pasta onde seu emulador está localizado.Em geral, estará na pasta de ferramentas do Android SDK.
Em seguida, use o seguinte comando:
emulator -avd <avd name> -http-proxy <server>:<proxy>
Com isso, poderemos acessar a internet através do navegador.
Usando o emulador Android SDK 1.5 com proxy no Eclipse 3.45
Vá para Package Explorer -> Clique com o botão direito no seu projeto Android -> Executar como-> Executar configurações.
No aplicativo Android na coluna esquerda, selecione seu projeto -> na coluna direita, onde você vê Android | Alvo | Guias comuns ->
Selecione Destino -> na parte inferior “Opções adicionais de linha de comando do emulador” ->
-proxy HTTP http://www.gateProxy.com:1080 -debug-proxy http://www.gateProxy.com:1080
->Executar/Fechar.
Não usei o Android Emulator, mas configurei a variável de ambiente $http_proxy para perl e wget e algumas ferramentas cygwin no Windows.Isso pode funcionar para você no Android, mas a barra no nome de domínio parece ser um problema em potencial.Eu sei que tentei colocar meu domínio "GLOBAL" lá, mas acabei retirando-o e mantendo: http://$USER:password@www-proxy.company.com:80
Um problema que encontro com frequência são os programas que não podem ser instruídos a usar o proxy também para consultas DNS.Nos casos em que isso não acontece, sempre recebo um nome de host não encontrado.Eu gostaria de encontrar um resolvedor de DNS local que possa usar o proxy para todos os programas que não o fizerem.
Consegui visualizar o tráfego com um sniffer HTTP em vez de um proxy.Usei HTTPScoop, que é um pequeno aplicativo legal.
Além disso, o bom de usar o HTTPScoop é que também posso ver o tráfego no meu dispositivo real quando ligo o compartilhamento de internet e faço meu telefone usar o wifi do meu mac.Portanto, este é um bom negócio para depurar o que acontece no próprio telefone E no emulador.
Desta forma não importa qual emulador você usa, pois o sniffer vê o tráfego independente do emulador, dispositivo, configurações do compilador etc.
Vou explicar todos os passos:
- Vá para configurações no emulador Android> Sem fio e rede> Rede móvel> Ponto de acesso> Telkilla> e aqui faça as configurações necessárias, como proxy, porta, etc.
Acho que agora está tudo claro sobre as configurações de proxy...
Para Android2.3.3 Configurações-> sem fio & Networks-> MobileNetworks-> AccessPointNames-> Telkila-> Defina o proxy e a porta aqui (xx.xx.xx.xx e porta)
Eu tive o mesmo problema quando usei o seguinte comando:
emulator-x86.exe -http-proxy domain\user:password@proxyIP:port -avd MyAVD
Recebi o erro de autenticação de proxy.
Finalmente, tive que ignorar a autenticação do proxy NTLM usando o Cntlm aqui:
http://sourceforge.net/projects/cntlm/
E depois de simplesmente configurar o cntlm.ini, eu uso o seguinte comando:
emulator-x86.exe -http-proxy 127.0.0.1:3128 -avd MyAVD
e funciona :)