Como conectar-me ao meu servidor web http: // localhost do Android Emulator no Eclipse


485

O que posso fazer no emulador Android do Eclipse para conectá-lo à minha página do servidor da web host local em http://localhostou http://127.0.0.1?

Eu tentei, mas o emulador ainda aceita minha solicitação como uma pesquisa no Google por localhost ou, pior, diz que não encontrou a página enquanto meu servidor da Web normalmente está em execução.


Esta pergunta é sobre o Android Emulator e tem soluções aplicáveis a esse caso sozinho . Se você enfrentar esse problema ao usar um dispositivo Android física , consulte vez stackoverflow.com/questions/4779963/...
Chris Stratton

Respostas:


819

O host local refere-se ao dispositivo no qual o código está sendo executado, neste caso o emulador.

Se você quiser consultar o computador que está executando o simulador do Android, use o endereço IP 10.0.2.2 .

insira a descrição da imagem aqui

Você pode ler mais aqui .


12
por que se referir à outra questão? basta adicionar o link Android emulador Networking
Marvin Emil Brach

Obrigado por apontar o link. Eu acho que não estava lá quando a resposta foi postada.
Primal Pappachan

1
@impimpap: Posso usar o nome da máquina em vez do endereço IP?
KJEjava48

@primpap isso não está funcionando com a depuração do Mobile. Existe algum outro? Ou estou cometendo um erro em algum lugar porque 10.0.2.2 está funcionando no emulador, mas não está funcionando quando eu conecto o dispositivo móvel para depuração USB. ?
Jawad Zeb

5
Essa solução funciona apenas em emuladores , conforme solicitado na pergunta específica aqui. Aqueles que depurarem um dispositivo Android físico precisarão usar o endereço IP ou o nome real do servidor, não poderão usar esse alias especial apenas de emulador. Essa resposta é boa - mas os leitores precisam ter cuidado para que sua situação seja aquela em que é aplicável .
22717 Chris Stratton


29

Usei 10.0.2.2 com êxito na minha máquina doméstica, mas no trabalho, ela não funcionou. Após horas de brincadeira, criei uma nova instância do emulador usando o gerenciador de dispositivos virtuais Android (AVD) e, finalmente, o 10.0.2.2 funcionou.

Não sei o que havia de errado com a outra instância do emulador (a plataforma era a mesma), mas se você encontrar 10.0.2.2 não funcionar, tente criar uma nova instância do emulador.


4
Infelizmente, isso não funciona para mim, mesmo depois de criar uma nova instância do AVD. O que você sugere? Para reinstalar tudo?
Vlado Pandžić

23

Tente http://10.0.2.2:8080/onde 8080está o seu número da porta. Funcionou perfeitamente. Se você apenas tentar 10.0.2.2, não funcionará. Você precisa adicionar o número da porta a ele. Além disso, se o Microsoft IIS estiver instalado, tente desativar esse recurso no painel de controle (se estiver usando qualquer sistema operacional Windows) e tente conforme o indicado acima.


2
E se as páginas estiverem hospedadas no IIS?
Maracuja-juice

@Marimba figura apenas o que porta seu servidor IIS serve, então o acesso 10.0.2.2:your_iis_port
StoneLam

isto é uma string concluída ea única funcionou no meu android 8.1 emulador
CodeToLife

10

de acordo com a documentação:

10.0.2.2 - Alias ​​especial para a interface de loopback do host (por exemplo, 127.0.0.1 em sua máquina de desenvolvimento)

verifique Rede de emulador para obter mais truques na rede de emulador.



3

Eu precisava descobrir o endereço IP do host do sistema para o emulador "Nox App Player". Aqui está como eu descobri que era 172.17.100.2.

  1. Emulador de terminal Android instalado na app Store
  2. Emita o ip link showcomando para mostrar todas as interfaces de rede. De particular interesse foi a interface eth1
  3. ifconfig eth1Comando Issue , mostra net como172.17.100.15/255.255.255.0
  4. Comece a executar ping nos endereços a partir de 172.17.100.1, e acerte o `172.17.100.2 '. Não tenho certeza se um firewall interferiria, mas não no meu caso

Talvez isso possa ajudar alguém a descobrir isso para outros emuladores.


1

Se você estiver no Windows, poderá acessar o sistema simbol, escrever ipconfig e verificar qual ip está atribuído à sua máquina.


Isso não é necessário ao depurar a partir de um emulador, pois você pode usar o alias especial para a interface de loopback do host citada nas outras respostas. No entanto, se estiver depurando de um dispositivo Android físico, sim, você precisa determinar o endereço real do seu servidor de teste e usá-lo.
22817 Chris Stratton

1

Você pode realmente usar localhost:8000para se conectar ao host local da sua máquina executando o comando abaixo sempre que executar o emulador (testado apenas no Mac):

adb reverse tcp:8000 tcp:8000

Basta colocá-lo no terminal Android Studio.

Ele basicamente configura um proxy reverso no qual um servidor http em execução no telefone aceita conexões em uma porta e as conecta ao computador ou vice-versa.


0

Não sei, talvez esse tópico já esteja resolvido, mas quando tentei fazer isso recentemente na máquina Windows, enfrentei muitas dificuldades. Então, minha solução foi realmente simples. Fiz o download deste software http://www.lenzg.net/rinetd/rinetd.html e segui suas instruções sobre como fazer o encaminhamento de portas e, em seguida, com êxito, meu dispositivo Android se conectou para fazer o projeto asp.net localhost e parou no meu ponto de interrupção.

meu arquivo rinetd.conf:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

Onde 10.1.1.20 é o meu host local ip, 82 e 1234, minhas portas Também tenho arquivos de banho desejados para facilitar a vida yournameofbathfile.bat, coloque esse arquivo dentro da pasta rined. Meu arquivo de banho:

rinetd.exe -c rinetd.conf

Depois de iniciar esse software, inicie o servidor aps.net e tente acessar do dispositivo Android ou de qualquer dispositivo da rede local (por exemplo, o Computador ABC inicia a aplicação de massa) e você verá que tudo funciona. Não há necessidade de ir para a configuração do roteador ou fazer outras coisas complicadas. Eu espero que isso te ajude. Aproveitar.


-1

Outra solução alternativa é obter um domínio gratuito no no-ip.org e apontá-lo para o seu endereço IP local. Então, em vez de usar, http://localhost/yourwebservicevocê pode tentarhttp://yourdomain.no-ip.org/yourwebservice

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.