Używam serwera xampp apache do udostępniania zasobów aplikacji z mojego komputera. Ale otrzymuję powyższy błąd.
Mam coś w Google. wskazanie na możliwe rozwiązanie tutaj http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a
Jakie jest rozwiązanie powyższego problemu?
Odpowiedzi:
Ponieważ nie określiłeś, że jesteś podłączony do serwera z urządzenia lub emulatora, myślę, że używasz aplikacji w emulatorze.
Jeśli odwołujesz się do lokalnego hosta w systemie z emulatora Androida, musisz użyć,
http://10.0.2.2:8080/
ponieważ emulator Androida działa na maszynie wirtualnej, dlatego tutaj127.0.0.1
lublocalhost
będzie własnym adresem pętli zwrotnej emulatora.Zobacz: Emulator Networking
źródło
http://localhost:8080/Getdata.php
czyhttp://127.0.0.1:8080/Getdata.php
musisz go zmienić jako używanyhttp://10.0.2.2:8080/Getdata.php
10.0.2.2
się10.0.3.2
jeśli działa na Genymotion.w systemie Android
Zastąpić:
String webServiceUrl = "http://localhost:8080/Service1.asmx"
Z :
String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"
Powodzenia!
źródło
localhost i 127.0.0.1 to oba sposoby na powiedzenie „bieżącej maszyny”. Więc localhost na twoim komputerze to komputer, a localhost na Androidzie to telefon. Ponieważ Twój telefon nie obsługuje serwera internetowego, oczywiście odmówi połączenia.
Musisz uzyskać adres IP swojego komputera (użyj ipconfig w systemie Windows, aby się tego dowiedzieć) i użyj go zamiast 127.0.0.1. To może nadal nie działać, w zależności od konfiguracji sieci / zapór. Ale to zupełnie inny temat.
źródło
źródło
Musisz tylko użyć swojego lokalnego (ale prawdziwego) adresu IP i numeru portu w następujący sposób:
String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"
I upewnij się, że w manifeście ustawiłeś pozwolenie internetowe
<uses-permission android:name="android.permission.INTERNET" />
źródło
Jeśli używasz localhost w swoim adresie URL i testujesz aplikację w emulatorze, po prostu możesz zamienić adres IP systemu na localhost w adresie URL. Lub możesz użyć 10.0.2.2 zamiast localhost.
http: //localhost/webservice.php do http://10.218.28.19/webservice.php
Gdzie 10.218.28.19 -> Adres IP systemu.
lub
http: //localhost/webservice.php do http://10.0.2.2/webservice.php
źródło
Musisz tylko użyć swojego lokalnego adresu IP: używając polecenia cmd „ipconfig” i numeru portu serwera w następujący sposób:
String webServiceUrl = " http: //192.168.XX: your_local_server_port / your_web_service_name.php "
I upewnij się, że masz ustawione uprawnienia internetowe w manifeście projektu
U mnie działa idealnie
Powodzenia
źródło
to działa dla mnie. Używam genymotion do Run App.
1. Najpierw sprawdzono moje lokalne IP. goto command mode >> I napisz ipconfig. Przykład: Windows 10 >> wyszukaj cmd >>, a następnie napisz ipconfig. 2. Następnie uzyskaj informacje o lokalnym adresie IP >>> 3. Użyj adresu IP hosta lokalnego i adresu IP wirtualnej skrzynki. Musisz użyć wirtualnego boxu IP do genymotion. Sprawdź poniższy zrzut ekranu. Możesz poniżej dowolnego adresu IP w sieci hosta virtualbox
źródło
Zastąpienie localhost 10.0.2.2 jest poprawne, ale można też zastąpić localhost adresem IP swojej fizycznej maszyny (jest to lepsze do celów debugowania). Oczywiście, jeśli IP jest dostarczane przez dhcp, musiałbyś go zmieniać za każdym razem ...
Powodzenia!
źródło
Rozwiązanie jest bardzo proste.
1 Dodaj uprawnienia internetowe w pliku Androidmanifest.xml
[2] Zmień plik httpd.config
[3] I najbardziej bezsilny krok. URUCHOM SWOJĄ SIEĆ JAKO SIEĆ DOMOWĄ
Wybierz Panel sterowania> Sieć i Internet> Centrum sieci i udostępniania
źródło