Was kann ich im Android Emulator von Eclipse tun, um eine Verbindung zu meiner localhost-Webserverseite unter http://localhost
oder http://127.0.0.1
herzustellen?
Ich habe es versucht, aber der Emulator nimmt meine Anfrage immer noch wie eine Google-Suche nach localhost an, oder schlimmer noch, es heißt, dass die Seite nicht gefunden wurde, während mein Webserver normal ausgeführt wird.
Der localhost bezieht sich auf das Gerät, auf dem der Code ausgeführt wird, in diesem Fall auf den Emulator.
Wenn Sie sich auf den Computer beziehen möchten, auf dem der Simulator Android ausgeführt wird, verwenden Sie stattdessen die IP-Adresse 10.0.2.2. Sie können mehr von hier lesen.
Verwenden Sie 10.0.2.2
für Standard-AVD und 10.0.3.2
für genymotion .
Ich habe 10.0.2.2 erfolgreich auf meinem Heimcomputer verwendet, aber bei der Arbeit hat es nicht funktioniert. Nach stundenlangem Herumalbern habe ich mit dem Android Virtual Device (AVD) -Manager eine neue Emulatorinstanz erstellt, und schließlich hat die Version 10.0.2.2 funktioniert.
Ich weiß nicht, was mit der anderen Emulatorinstanz falsch war (die Plattform war dieselbe), aber wenn Sie feststellen, dass 10.0.2.2 nicht funktioniert, versuchen Sie, eine neue Emulatorinstanz zu erstellen.
Versuchen Sie http://10.0.2.2:8080/
, wobei 8080
Ihre Portnummer ist. Es hat perfekt funktioniert. Wenn Sie nur 10.0.2.2
versuchen, funktioniert es nicht. Sie müssen die Portnummer hinzufügen. Wenn Microsoft IIS installiert wurde, deaktivieren Sie diese Funktion in der Systemsteuerung (falls Sie ein Windows-Betriebssystem verwenden) und versuchen Sie es dann wie oben beschrieben.
laut Dokumentation:
10.0.2.2 - Spezieller Alias für Ihre Host-Loopback-Schnittstelle (d. H. 127.0.0.1 auf Ihrem Entwicklungscomputer)
check Emulator Networking für weitere Tricks zum Emulator Networking.
Für mein Mac OS Mountain Lion Gerät:
http: // 10.0.2.2:8888
Funktioniert perfekt!
Ich musste die System-Host-IP-Adresse für den Emulator "Nox App Player" herausfinden. Hier ist, wie ich herausgefunden habe, dass es 172.17.100.2
ist.
ip link show
ab, um alle Netzwerkschnittstellen anzuzeigen. Von besonderem Interesse war das eth1-Interfaceifconfig eth1
aus und zeige net als 172.17.100.15/255.255.255.0
172.17.100.1
beginnen, und erzielen Sie einen Treffer bei `172.17.100.2 '. Ich bin mir nicht sicher, ob eine Firewall stören würde, aber in meinem Fall nichtVielleicht kann dies jemand anderem helfen, es für andere Emulatoren herauszufinden.
Wenn Sie sich in Windows befinden, können Sie zum Symbolsystem gehen und ipconfig schreiben und überprüfen, welche IP zugewiesen ist zu Ihrer Maschine.
Ich weiß nicht, vielleicht ist dieses Thema bereits gelöst, aber als ich kürzlich versucht habe, dies auf einem Windows-Computer zu tun, hatte ich viele Schwierigkeiten. Meine Lösung war also wirklich einfach. Ich habe diese Software heruntergeladen http://www.lenzg.net/rinetd/rinetd.html befolgte die Anweisungen zum Herstellen der Portweiterleitung und stellte dann erfolgreich eine Verbindung zu meinem Android Gerät her mache asp.net localhost projekt und stoppe an meinem brechpunkt.
meine rinetd.conf Datei:
10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82
Wobei 10.1.1.20 meine localhost IP ist, 82 und 1234 meine Ports. Außerdem habe ich eine Bath-Datei für ein einfaches Leben erstellt. Meine Badekartei:
rinetd.exe -c rinetd.conf
Starten Sie nach dem Start dieses Programms Ihren aps.net-Server und versuchen Sie, von einem Android Gerät oder einem beliebigen Gerät in Ihrem lokalen Netzwerk aus darauf zuzugreifen (z. B. Computer ABC startet PuTTY). Sie werden sehen, dass alles funktioniert. Sie müssen nicht zur Router-Einstellung gehen oder andere komplizierte Dinge tun. Ich hoffe, dies wird dir helfen. Genießen.
Eine andere Problemumgehung besteht darin, eine kostenlose Domain von no-ip.org zu erhalten und auf Ihre lokale IP-Adresse zu verweisen. Anstatt http://localhost/yourwebservice
zu verwenden, können Sie dann http://yourdomain.no-ip.org/yourwebservice
versuchen.