#c# #android #web-services
#c# #Android #веб-сервисы
Вопрос:
Я разрабатываю приложение на Android, я пытаюсь использовать его для подключения к базе данных SQL Server 2005 через веб-сервис.
У меня есть веб-сервис, который обращается к базе данных и тестируется самостоятельно.
Теперь у меня есть код для подключения к веб-сервису с Android, но всякий раз, когда я пытаюсь его протестировать, я получаю сообщение об ошибке «отказано в подключении».
Я ввожу URL-адрес веб-сервиса в том виде, в каком он отображается на тестовом сервере ASP: private static final String URL = «http://localhost:3068/Service1.asmx «;
Я подозреваю, что это проблема, как симулятор Android узнает, что такое localhost, но как мне это решить?
Ответ №1:
Вам необходимо заменить localhost именем сервера или IP-адресом сервера, к которому вы пытаетесь подключиться.
Ответ №2:
Я предполагаю, что тестовый сервер ASP работает в той же системе, что и база данных, что означает, что вы можете использовать http://localhost:3068/Service1.asmx
. Но работает ли ваш Android-симулятор в этой системе или где-то еще. Если где-то еще, вам нужно будет указать полный URL-адрес — что-то вроде http://www.mysqlserver.com:3068/Service1.asmx
.
Ответ №3:
Поскольку вы используете Android на виртуальной машине, ‘localhost’ ссылается на фактический IP-адрес виртуальной машины.
Что вам нужно сделать, так это выяснить, какие другие IP-адреса назначены ПК, и использовать их.
Я использовал тот, который предоставляется моей локальной сетью 192.168.x.x . Вы можете узнать, какой у вас, используя ipconfig /all.
Примечание: если вы пытаетесь использовать веб-сервисы SOAP, вы в шоке, потому что они не очень хорошо поддерживаются на Android. Ищите службы «REST» и избавьте себя от проблем.