Ich verwende den xampp-Apache-Server, um Ressourcen von meinem Computer aus für die Anwendung bereitzustellen. Aber ich bekomme den obigen Fehler.
Ich habe etwas auf Google. Hinweis auf eine mögliche Lösung hier http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a
Was ist die Lösung für das oben genannte Problem?
Antworten:
Da Sie nicht angegeben haben, dass Sie vom Gerät oder Emulator aus mit einem Server verbunden sind, verwenden Sie Ihre Anwendung vermutlich im Emulator.
Wenn Sie Ihren lokalen Host vom Android-Emulator auf Ihr System verweisen, müssen Sie Folgendes verwenden,
http://10.0.2.2:8080/
da der Android-Emulator in einer virtuellen Maschine ausgeführt wird, daher hier127.0.0.1
oderlocalhost
als eigene Loopback-Adresse des Emulators.Siehe: Emulator-Netzwerk
quelle
http://localhost:8080/Getdata.php
oderhttp://127.0.0.1:8080/Getdata.php
dann müssen Sie sie als Verwendung ändernhttp://10.0.2.2:8080/Getdata.php
10.0.2.2
durch,10.0.3.2
wenn Sie mit Genymotion arbeiten.in Android
Ersetzen:
String webServiceUrl = "http://localhost:8080/Service1.asmx"
Mit:
String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"
Viel Glück!
quelle
localhost und 127.0.0.1 sind beide Arten, "die aktuelle Maschine" zu sagen. Localhost auf Ihrem PC ist also der PC und localhost auf dem Android ist das Telefon. Da auf Ihrem Telefon natürlich kein Webserver ausgeführt wird, wird die Verbindung abgelehnt.
Sie müssen die IP-Adresse Ihres Computers abrufen (verwenden Sie ipconfig unter Windows, um dies herauszufinden) und diese anstelle von 127.0.0.1 verwenden. Dies funktioniert möglicherweise immer noch nicht, je nachdem, wie Ihr Netzwerk / Ihre Firewalls eingerichtet sind. Das ist aber ein ganz anderes Thema.
quelle
quelle
Sie müssen nur Ihre lokale (aber echte) IP-Adresse und Portnummer wie folgt verwenden:
String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"
Stellen Sie sicher, dass Sie die Internetberechtigung im Manifest festgelegt haben
<uses-permission android:name="android.permission.INTERNET" />
quelle
Wenn Sie localhost in Ihrer URL verwenden und Ihre Anwendung im Emulator testen, können Sie einfach die IP-Adresse des Systems für localhost in der URL ersetzen. Oder Sie können 10.0.2.2 anstelle von localhost verwenden.
http: //localhost/webservice.php bis http://10.218.28.19/webservice.php
Wobei 10.218.28.19 -> IP-Adresse des Systems.
oder
http: //localhost/webservice.php bis http://10.0.2.2/webservice.php
quelle
Sie müssen nur Ihre lokale IP-Adresse verwenden: Verwenden Sie dazu den Befehl cmd "ipconfig" und Ihre Server-Portnummer wie folgt:
String webServiceUrl = " http: //192.168.XX: your_local_server_port / your_web_service_name.php "
Stellen Sie sicher, dass Sie die Internetberechtigung in Ihrem Projektmanifest festgelegt haben
Es funktioniert perfekt für mich
Viel Glück
quelle
Es funktioniert für mich. Ich benutze Genymotion für Run App.
1. Zuerst wurde meine lokale IP überprüft. gehe zum Befehlsmodus >> Und schreibe ipconfig. Beispiel: Windows 10 >> cmd >> suchen und dann ipconfig schreiben. 2. Dann holen Sie sich Ihre lokalen IP-Informationen >>> 3. Geben Sie Ihre lokale Host-IP und die virtuelle Box-IP an. Sie müssen Virtual Box IP für Genymotion verwenden. Überprüfen Sie den folgenden Screenshot. Sie können unter jeder IP unter Virtualbox Host-Netzwerk
quelle
Das Ersetzen von localhost durch 10.0.2.2 ist korrekt, aber Sie können localhost auch durch die IP Ihres physischen Computers ersetzen (besser für Debug-Zwecke). Ofc, wenn IP von DHCP bereitgestellt wird, müssten Sie es jedes Mal ändern ...
Viel Glück!
quelle
Die Lösung ist sehr einfach.
1 Fügen Sie die Internetberechtigung in der Datei Androidmanifest.xml hinzu
[2] Ändern Sie Ihre httpd.config-Datei
[3] Und machtlosester Schritt. MACHEN SIE IHR NETZWERK ALS IHR ZUHAUSE-NETZWERK
Gehen Sie zu Systemsteuerung> Netzwerk und Internet> Netzwerk- und Freigabecenter
quelle