Я использую сервер xampp apache для обслуживания ресурсов приложения с моей машины. Но я получаю указанную выше ошибку.
Я кое-что нашел в гугле. указывая на возможное решение здесь http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a
Какое решение вышеуказанной проблемы?
Ответы:
Поскольку вы не указали, что подключены к серверу с устройства или эмулятора, я предполагаю, что вы используете свое приложение в эмуляторе.
Если вы ссылаетесь на свой локальный хост в своей системе из эмулятора Android, вам необходимо использовать,
http://10.0.2.2:8080/
потому что эмулятор Android работает на виртуальной машине, поэтому здесь127.0.0.1
илиlocalhost
будет собственный адрес обратной петли эмулятора.См .: Сеть эмулятора
источник
http://localhost:8080/Getdata.php
илиhttp://127.0.0.1:8080/Getdata.php
вы должны изменить его для использованияhttp://10.0.2.2:8080/Getdata.php
10.0.2.2
на,10.0.3.2
если вы используете Genymotion.в android
Заменить:
String webServiceUrl = "http://localhost:8080/Service1.asmx"
С участием :
String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"
Удачи!
источник
localhost и 127.0.0.1 - оба способа сказать «текущий компьютер». Итак, localhost на вашем компьютере - это компьютер, а localhost на Android - это телефон. Поскольку на вашем телефоне нет веб-сервера, он, конечно, откажется от соединения.
Вам нужно получить IP-адрес вашего компьютера (используйте ipconfig в Windows, чтобы узнать) и используйте его вместо 127.0.0.1. Это может по-прежнему не работать в зависимости от того, как настроена ваша сеть / брандмауэры. Но это совсем другая тема.
источник
источник
Вам просто нужно использовать свой локальный (но реальный) IP-адрес и номер порта следующим образом:
String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"
И убедитесь, что вы установили разрешение в Интернете в манифесте
<uses-permission android:name="android.permission.INTERNET" />
источник
Если вы используете localhost в своем URL-адресе и тестируете свое приложение в эмуляторе, вы можете просто заменить системный IP-адрес на localhost в URL-адресе. Или вы можете использовать 10.0.2.2 вместо localhost.
http: //localhost/webservice.php до http://10.218.28.19/webservice.php
Где 10.218.28.19 -> IP-адрес системы.
или
http: //localhost/webservice.php на http://10.0.2.2/webservice.php
источник
Вам просто нужно использовать свой локальный IP-адрес: используя команду cmd "ipconfig" и номер порта вашего сервера, например:
Строка webServiceUrl = " http: //192.168.XX: your_local_server_port / your_web_service_name.php "
И убедитесь, что вы установили интернет-разрешение в манифесте проекта.
У меня он отлично работает
Удачи
источник
он работает для меня. Я использую genymotion для Run App.
1. Сначала я проверил свой локальный ip. goto command mode >> И напишите ipconfig. Пример: Windows 10 >> search cmd >> затем напишите ipconfig. 2. Затем получите информацию о вашем локальном IP-адресе. >>> 3. Используйте IP-адрес вашего локального хоста и виртуального ящика. Вам необходимо использовать виртуальный IP-адрес для genymotion. Смотрите скриншот ниже. Вы можете указать любой IP-адрес в сети хоста виртуальных боксов
источник
Замена localhost на 10.0.2.2 верна, но вы также можете заменить localhost IP-адресом вашего физического компьютера (это лучше для целей отладки). Конечно, если ip предоставляется dhcp, вам придется менять его каждый раз ...
Удачи!
источник
Решение очень простое.
1 Добавьте разрешение на доступ к Интернету в файле Androidmanifest.xml
[2] Измените файл httpd.config
[3] И самый бессильный шаг. СДЕЛАЙТЕ СВОЮ СЕТЬ СВОЕЙ ДОМАШНЕЙ СЕТЬЮ
Перейдите в Панель управления> Сеть и Интернет> Центр управления сетями и общим доступом.
источник