Comment me connecter à mon serveur Web http: // localhost depuis l'émulateur Android dans Eclipse


485

Que puis-je faire dans l'émulateur Android d'Eclipse pour le connecter à la page de mon serveur Web local à http://localhostou http://127.0.0.1?

Je l'ai essayé, mais l'émulateur prend toujours ma demande comme une recherche Google pour localhost ou pire, il dit qu'il n'a pas trouvé la page alors que mon serveur Web fonctionne normalement.


Cette question concerne l' émulateur Android et propose des solutions applicables uniquement à ce cas . Si vous rencontrez ce problème lors de l'utilisation d'un appareil Android physique , consultez plutôt stackoverflow.com/questions/4779963/…
Chris Stratton

Réponses:


819

L'hôte local fait référence à l'appareil sur lequel le code s'exécute, dans ce cas l'émulateur.

Si vous souhaitez vous référer à l'ordinateur qui exécute le simulateur Android, utilisez plutôt l'adresse IP 10.0.2.2 .

entrez la description de l'image ici

Vous pouvez en lire plus d' ici .


12
pourquoi se référer à l'autre question? ajoutez simplement l' émulateur
Marvin Emil Brach

Merci d'avoir signalé le lien. Je suppose que ce n'était pas là lorsque la réponse a été publiée.
Primal Pappachan

1
@primpap: Puis-je utiliser le nom de la machine au lieu de l'adresse IP ??
KJEjava48

@primpap cela ne fonctionne pas avec le débogage mobile. Y en a-t-il un autre? Ou je fais une erreur quelque part parce que 10.0.2.2 fonctionne sur l'émulateur mais ne fonctionne pas lorsque je me connecte mobile pour le débogage USB. ?
Jawad Zeb

5
Cette solution ne fonctionne que sur les émulateurs , comme demandé dans la question spécifique ici. Ceux qui déboguent sur un appareil Android physique devront utiliser l'adresse IP ou le nom réel du serveur, ils ne peuvent pas utiliser cet alias spécial émulateur uniquement. Cette réponse est bonne - mais les lecteurs doivent veiller à ce que leur situation soit celle dans laquelle elle s'applique .
Chris Stratton

156

Utiliser 10.0.2.2pour AVD par défaut et 10.0.3.2pour.


Alors ajoutons-nous simplement 10.0.3.2notre fichier hôte?
2015

29

J'ai utilisé 10.0.2.2 avec succès sur ma machine personnelle, mais au travail, cela n'a pas fonctionné. Après des heures de farniente, j'ai créé une nouvelle instance d'émulateur à l'aide du gestionnaire de périphérique virtuel Android (AVD), et enfin le 10.0.2.2 a fonctionné.

Je ne sais pas ce qui n'allait pas avec l'autre instance d'émulateur (la plate-forme était la même), mais si vous trouvez que 10.0.2.2 ne fonctionne pas, essayez de créer une nouvelle instance d'émulateur.


4
Malheureusement, cela ne fonctionne pas pour moi, même après la création d'une nouvelle instance AVD. Que suggérez-vous? Pour tout réinstaller?
Vlado Pandžić

23

Essayez http://10.0.2.2:8080/8080est votre numéro de port. Cela a parfaitement fonctionné. Si vous essayez, 10.0.2.2cela ne fonctionnera pas. Vous devez lui ajouter un numéro de port. Aussi, si Microsoft IIS a été installé, essayez de désactiver cette fonctionnalité à partir du panneau de configuration (si vous utilisez un système d'exploitation Windows), puis essayez comme indiqué ci-dessus.


2
Et si les pages sont hébergées sur IIS?
maracuja-juice

@Marimba suffit de déterminer le port sur lequel votre serveur IIS sert, puis accédez à 10.0.2.2:your_iis_port
StoneLam

ceci est une chaîne terminée et la seule a fonctionné sur mon émulateur Android 8.1
CodeToLife

10

selon la documentation:

10.0.2.2 - Alias ​​spécial pour votre interface de bouclage hôte (par exemple, 127.0.0.1 sur votre machine de développement)

consultez Emulator Networking pour plus d'astuces sur la mise en réseau d'émulateur.



3

J'avais besoin de trouver l'adresse IP de l'hôte système pour l'émulateur "Nox App Player". Voici comment j'ai compris que c'était 172.17.100.2.

  1. Émulateur de terminal Android installé dans l'App Store
  2. Exécutez la ip link showcommande pour afficher toutes les interfaces réseau. L'interface eth1 était particulièrement intéressante
  3. Exécutez la ifconfig eth1commande, affiche net comme172.17.100.15/255.255.255.0
  4. Commencez à cingler les adresses à partir de 172.17.100.1, obtenez un hit sur `172.17.100.2 '. Je ne sais pas si un pare-feu interférerait, mais ce n'est pas le cas dans mon cas

Peut-être que cela peut aider quelqu'un d'autre à le découvrir pour d'autres émulateurs.


1

Si vous êtes dans Windows, vous pouvez aller au système simbol et écrire ipconfig et vérifier quelle adresse IP est attribuée à votre machine.


Cela n'est pas nécessaire lors du débogage à partir d'un émulateur, car vous pouvez utiliser l'alias spécial pour l'interface de bouclage hôte citée dans les autres réponses. Cependant, si vous déboguez à partir d'un appareil Android physique, alors oui, vous devez déterminer l'adresse réelle de votre serveur de test et l'utiliser.
Chris Stratton

1

Vous pouvez réellement utiliser localhost:8000pour vous connecter à l'hôte local de votre machine en exécutant la commande ci-dessous chaque fois que vous exécutez votre émulateur (testé sur Mac uniquement):

adb reverse tcp:8000 tcp:8000

Il suffit de le mettre sur le terminal Android Studio.

Il configure essentiellement un proxy inverse dans lequel un serveur http exécuté sur votre téléphone accepte les connexions sur un port et les connecte à votre ordinateur ou vice versa.


0

Je ne sais pas, peut-être que ce sujet est déjà résolu, mais quand j'ai essayé récemment de le faire sur une machine Windows, j'ai rencontré beaucoup de difficultés. Ma solution était donc vraiment simple. J'ai téléchargé ce soft http://www.lenzg.net/rinetd/rinetd.html suivi leurs instructions sur la façon de faire la redirection de port, puis avec succès mon appareil Android connecté pour créer le projet asp.net localhost et arrêté sur mon point de rupture.

mon fichier rinetd.conf:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

Où 10.1.1.20 est mon IP localhost, 82 et 1234 mes ports. Mon dossier de bain:

rinetd.exe -c rinetd.conf

Après avoir démarré ce logiciel, démarrez votre serveur aps.net et essayez d'accéder à partir d'un appareil Android ou de n'importe quel appareil de votre réseau local (par exemple, l'ordinateur ABC démarre le mastic) et vous verrez que tout fonctionne. Pas besoin d'aller au réglage du routeur ou de faire d'autres choses compliquées. J'espère que cela t'aidera. Prendre plaisir.


-1

Une autre solution consiste à obtenir un domaine gratuit sur no-ip.org et à le pointer vers votre adresse IP locale. Ensuite, au lieu d'utiliser, http://localhost/yourwebservicevous pouvez essayerhttp://yourdomain.no-ip.org/yourwebservice

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.