Jak połączyć się z moim http: // localhost web server z Android Emulator w Eclipse

485

Co mogę zrobić w emulatorze Androida Eclipse, aby połączyć go ze stroną serwera localhost na stronie http://localhostlub http://127.0.0.1?

Próbowałem, ale emulator nadal przyjmuje moją prośbę jak wyszukiwanie Google dla localhost lub co gorsza, mówi, że nie znalazł strony, podczas gdy mój serwer WWW normalnie działa.

Fopa Léon Constantin
źródło
To pytanie jest o Android Emulator i ma rozwiązań mających zastosowanie do tego przypadku monoterapii . Jeśli napotkasz ten problem podczas korzystania z fizycznego urządzenia z Androidem , zobacz stackoverflow.com/questions/4779963/...
Chris Stratton

Odpowiedzi:

819

Lokalny host odnosi się do urządzenia, na którym działa kod, w tym przypadku emulatora.

Jeśli chcesz odwołać się do komputera z symulatorem Androida, użyj adresu IP 10.0.2.2 .

wprowadź opis zdjęcia tutaj

Możesz przeczytać więcej tutaj .

Primal Pappachan
źródło
12
po co odwoływać się do innego pytania? wystarczy dodać emulator
Marvin Emil Brach
Dziękujemy za wskazanie linku. Wydaje mi się, że nie było go tam, kiedy opublikowano odpowiedź.
Primal Pappachan
1
@primpap: Czy mogę użyć nazwy komputera zamiast adresu IP?
KJEjava48,
@primpap to nie działa z debugowaniem mobilnym. Czy jest jakiś inny? Albo gdzieś popełniam błąd, ponieważ 10.0.2.2 działa na emulatorze, ale nie działa, gdy podłączam telefon komórkowy do debugowania USB. ?
Jawad Zeb
5
To rozwiązanie działa tylko na emulatorach , zgodnie z pytaniem tutaj. Osoby debugujące na fizycznym urządzeniu z Androidem będą musiały użyć rzeczywistego adresu IP lub nazwy serwera, nie będą mogły używać tego specjalnego aliasu tylko z emulatora. Ta odpowiedź jest dobra - ale czytelnicy muszą uważać, aby ich sytuacja była taka, w jakiej można ją zastosować .
Chris Stratton,
156

Użyj 10.0.2.2dla domyślnego AVD i10.0.3.2 dla.

qgicup
źródło
Czy po prostu dodajemy 10.0.3.2nasz plik hosta?
Ajjay,
29

Z powodzeniem korzystałem z 10.0.2.2 na moim komputerze domowym, ale w pracy nie działało. Po wielu godzinach wygłupów utworzyłem nową instancję emulatora za pomocą Android Virtual Device menedżera (AVD) i wreszcie 10.0.2.2 zadziałało.

Nie wiem, co było nie tak z inną instancją emulatora (platforma była taka sama), ale jeśli okaże się, że 10.0.2.2 nie działa, spróbuj utworzyć nową instancję emulatora.

Derwood Kirkwood
źródło
4
Niestety nie działa dla mnie nawet po utworzeniu nowej instancji AVD. Co sugerujesz? Aby ponownie wszystko zainstalować?
Vlado Pandžić
23

Spróbuj, http://10.0.2.2:8080/gdzie 8080jest twój numer portu. Działa idealnie. Jeśli tylko spróbujesz, 10.0.2.2to nie zadziała. Musisz do niego dodać numer portu. Również jeśli Microsoft IIS został zainstalowany, spróbuj wyłączyć tę funkcję z panelu sterowania (jeśli używasz dowolnego systemu operacyjnego Windows), a następnie spróbuj wykonać powyższe czynności.

SAMBA
źródło
2
Co jeśli strony są hostowane w IIS?
maracuja-juice
@Marimba po prostu dowiedz się, na jakim porcie służy twój serwer IIS, a następnie uzyskaj
StoneLam
jest to kompletny ciąg i jedyny działający na moim emulatorze Androida 8.1
CodeToLife
10

zgodnie z dokumentacją:

10.0.2.2 - Specjalny alias do interfejsu sprzężenia zwrotnego hosta (tj. 127.0.0.1 na komputerze programisty)

sprawdź Emulator Networking, aby uzyskać więcej sztuczek związanych z siecią emulatora.

Rahul Tiwari
źródło
5

W przypadku urządzenia My Lion OS Mountain Lion:

http://10.0.2.2:8888

Działa idealnie!

Gość
źródło
3

Musiałem znaleźć adres IP hosta systemu dla emulatora „Nox App Player”. Oto, jak się zorientowałem 172.17.100.2.

  1. Zainstalowano emulator terminala Android ze sklepu z aplikacjami
  2. Wydaj ip link showpolecenie, aby wyświetlić wszystkie interfejsy sieciowe. Szczególnie interesujący był interfejs eth1
  3. Wydaj ifconfig eth1polecenie, pokazuje net jako172.17.100.15/255.255.255.0
  4. Rozpocznij pingowanie adresów zaczynając od 172.17.100.1, trafiłem na `172.17.100.2 '. Nie jestem pewien, czy zapora zadziała, ale w moim przypadku tak nie było

Może to może pomóc komuś innemu dowiedzieć się o innych emulatorach.

Hugh Jeffner
źródło
1

Jeśli jesteś w systemie Windows, możesz przejść do systemu simbol i napisać ipconfig i sprawdzić, jaki ip jest przypisany do twojego komputera.

Ricardo
źródło
Nie jest to konieczne podczas debugowania z emulatora, ponieważ można użyć specjalnego aliasu dla interfejsu sprzężenia zwrotnego hosta wymienionego w innych odpowiedziach. Jeśli jednak debugujesz z fizycznego urządzenia z Androidem, to tak, musisz określić rzeczywisty adres serwera testowego i użyć go.
Chris Stratton
1

Możesz faktycznie użyć localhost:8000do połączenia z lokalnym hostem komputera, uruchamiając poniższe polecenie za każdym razem, gdy uruchamiasz emulator (testowany tylko na Macu):

adb reverse tcp:8000 tcp:8000

Wystarczy umieścić go w terminalu Android Studio.

Zasadniczo konfiguruje odwrotne proxy, w którym serwer HTTP działający w telefonie akceptuje połączenia na porcie i łączy je z komputerem lub odwrotnie.

Nijat Ahmadli
źródło
0

Nie wiem, może ten temat jest już rozwiązany, ale kiedy ostatnio próbowałem to zrobić na komputerze z systemem Windows, napotkałem wiele trudności. Więc moje rozwiązanie było naprawdę proste. Pobrałem ten miękki http://www.lenzg.net/rinetd/rinetd.html postępując zgodnie z ich instrukcjami dotyczącymi przekazywania portów, a następnie pomyślnie nawiązałem połączenie z moim urządzeniem z Androidem, aby utworzyć projekt lokalnego hosta asp.net i zatrzymałem się w punkcie krytycznym.

mój plik rinetd.conf:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82

Gdzie 10.1.1.20 jest moim lokalnym hostem ip, 82 i 1234 moje porty Również mam skąpy plik kąpieli dla łatwego życia twoja nazwabathfile.bat, umieść ten plik w folderze rinedfolder. Mój plik do kąpieli:

rinetd.exe -c rinetd.conf

Po uruchomieniu tego soft, uruchom serwer aps.net i spróbuj uzyskać dostęp z urządzenia z systemem Android lub dowolnego urządzenia w sieci lokalnej (na przykład Kit ABC uruchamia kit), a zobaczysz, że wszystko działa. Nie musisz przechodzić do ustawień routera ani wykonywać innych skomplikowanych czynności. Mam nadzieję, że to Ci pomoże. Cieszyć się.

Jevgenij Kononov
źródło
-1

Innym obejściem jest uzyskanie bezpłatnej domeny od no-ip.org i skierowanie jej na lokalny adres IP. Następnie zamiast używać http://localhost/yourwebservicemożesz spróbowaćhttp://yourdomain.no-ip.org/yourwebservice

Astri
źródło