Подтвердить что ты не робот

Подключение устройства Android к веб-службе на локальном хосте

Я реализовал веб-сервис для приложения для Android. Веб-служба работает на моем локальном хосте (192.168.1.2). С помощью эмулятора Android мне удалось подключиться к веб-сервису. Я попытался подключить свое устройство Android в режиме отладки к веб-сервису, но это не сработало. Поэтому мой вопрос в том, можно ли подключить Android-устройство к этой веб-службе, которая работает на моем локальном хосте (192.168.1.2), без использования реального IP-адреса?

4b9b3361

Ответ 1

Вы уже решили свою проблему? У меня тоже такая проблема, как вы. Это шаги, которые я уже сделал:

  • отключите кабель lan или выключите любое другое интернет-соединение с вашего компьютера.
  • подключите свой Android-плеер к компьютеру с помощью usb.
  • включить usb tethering
  • вернуться на ваш компьютер. проверьте свой ip. мой - 192.168.42.37
  • проверьте ваше приложение webservice на вашем компьютере. скажем http://192.168.42.37/webserviceapp
  • Вернемся к мобильному телефону Android. попробуйте этот url http://192.168.42.37/webserviceapp

Теперь вы можете получить доступ к своему веб-сервису на своем ПК с вашего мобильного телефона.

Ответ 2

Это гораздо более простой способ, поддерживаемый google!

  • Подключите телефон через USB к компьютеру и включите отладку usb
  • На вашем компьютере откройте браузер Chrome и введите именно этот адрес: chrome://inspect/#devices введите описание изображения здесь
  • Теперь вы можете связать свой порт компьютера с портом вашего устройства с помощью кнопки переадресации портов. На моем компьютере у меня есть сервис по адресу localhost:61437, и я просто связал его с портом устройства 8081. Помните, чтобы установить флажок "Включить переадресацию портов".

введите описание изображения здесь

  • экран из службы на моем компьютере (localhost:61437) введите описание изображения здесь

  • из моего мобильного браузера с той же услугой (localhost:8081). И это так. Также вы используете этот служебный адрес в своем приложении введите описание изображения здесь

Ответ 3

Ну, ваш localhost равен 127.0.0.1 (или:: 1), а ваш IP-адрес локальной сети - 192.168.1.2. Каждый компьютер/устройство, подключенное под вашей локальной сетью, может достигнуть вашего веб-сервиса по IP 192.168.1.2.

Ваше Android-устройство должно быть подключено таким же ЛВС через Wifi-соединение, чтобы он мог разговаривать с 192.168.1.2.

Если вы не можете подключить свое Android-устройство под одной и той же локальной сетью, например, у вас есть только 3-граммовое соединение, которое вам нужно играть с вашим маршрутизатором/брандмауэром, чтобы перенаправить весь входящий трафик (возможно, только трафик http) из вашего общедоступного ip-адреса private ip (192.168.1.2)

Надеемся на эту помощь

Ответ 4

Я заброшу свой процесс, так как ничто на SO не помогло мне. Вот шаги, которые я предпринял для подключения моего физического устройства Android к веб-службе, работающей на моем ноутбуке (подключенном к телефону) на localhost:

  • Включить отладку USB на устройстве Android

  • Запустите веб-службу на своем компьютере. Мой веб-сервис работает на localhost, порт 3000 в разработке: http://localhost:3000/api/...

  • Запустите ifconfig (Unix) или ipconfig (Windows)

  • Найдите свой адрес inet на вашем LAN. Mine 10.0.0.121 для интерфейса wlan0. Внешне это 68.43.XX.XXX, который не адрес, который вы хотите использовать.
  • Используйте IP-адрес LAN, поскольку вы подключаетесь к своей службе в локальной сети, иначе вы можете получить сообщение об ошибке econnrefused (соединение отказано) из-за правил брандмауэра.
  • Создайте свой URL-адрес http с этим IP-адресом и порт, на котором работает ваш веб-сервис. Для меня это http://10.0.0.121:3000/api/...

Когда вы запустите приложение, вы должны подключиться к своей локальной веб-службе в журналах, Wireshark и т.д., и вы должны увидеть нужную активность/данные в своем приложении Android.

Ответ 5

У меня были те же проблемы, многие исследовали, а затем выяснили, что вы должны явно вносить изменения в настройки брандмауэра. Ваш брандмауэр блокирует доступ к вашему коду из внешнего источника. Итак, все, что вам нужно сделать, это перейти к настройкам брандмауэра, добавить порт 80 (в моем случае с тех пор, как я использую Apache http Server) для входящего и исходящего. Теперь вы можете протестировать его в своем браузере телефона http://192.16.. **: 80/

Ответ 6

Я согласен с другими ответами как с хорошим подходом, если вы не хотите раскрывать свой веб-сервис DEV в Интернете. Однако это намного проще, если вы просто разоблачите веб-сервис. Там есть ряд бесплатных DNS-сервисов, но я нашел no-ip проще всего настроить. Я использую его именно для цели, о которой вы просили; поэтому я могу протестировать свой веб-сервис DEV на реальном устройстве.

Если вы решите пойти без no-ip (у меня нет связи с этой компанией, это только тот, который я использовал и знакомый), вы можете получить бесплатный общедоступный URL, например http://MyExampleWebServer.no-ip-org, и no-ip имеет утилиту, которую вы можете установить, даже если вы находитесь за динамическим IP-адресом, она всегда будет поддерживать правильный внешний IP-адрес, связанный с этим URL-адресом, Если вы работаете из своего дома, вам просто нужно убедиться, что вы переносите трафик с порта 80 на свой внутренний адрес 192.x.x.x(или любой другой порт, который вы используете, может быть, 443 для ssl).

Это так просто, и теперь вы можете ударить этот веб-сервис с любого устройства, которое может получить доступ к Интернету.

Я не работал с ним, но я считаю, что dyndns также предлагает аналогичную услугу.

Ответ 7

Я сделал это на Mac, используя GasMask и Charles Proxy Server. Ваш телефон и компьютер должны находиться в одной сети.

скажем, что URL-адрес веб-сервиса, который вы хотите получить, находится в http://api.xyz.com, вы сначала используете GasMask, чтобы указать этот URL-адрес на свой локальный хост, затем используйте Чарльз настроил прокси-сервер. Затем вы переходите к настройкам на своем телефоне, заходите в Wi-Fi, долго нажимаете на сеть, к которой вы подключены, выберите "Изменить сеть" и введите настройки прокси, которые дал вам Чарльз.

Ответ 8

Это решение для сервера разработки GAE в Eclipse

Шаг 1: Получите IP-адрес локальной сети

Перейдите на консоль Windows Command (нажмите Win + R, затем введите "cmd" ). В консоли введите "ipconfig". Вы увидите список дисплеев. Под адаптером беспроводной локальной сети Wi-Fi получите адрес IPv4. Это будет что-то 192.168.x.x

LAN IP: 192.168.x.x

Шаг 2:

Перейдите в Eclipse, откройте настроенный сервер

GAE Server

В разделе "Свойства сервера разработки GAE" → Адрес локального интерфейса для привязки, введите IP-адрес LAN и сохраните.

Шаг 3:

Теперь вы можете получить доступ к серверу GAE с помощью

http://192.168.x.x:8888/

8888 - указывает на номер порта, как указано в сервере разработки GAE

Ответ 9

Чтобы получить доступ к локальным веб-службам, используя собственные серверные узлы, а не IP-адреса с портами, выполните следующие действия:

  • Убедитесь, что ваше устройство Android и локальный компьютер находятся в одной сети.
  • Установите SquidMan на вашем Mac, Linux или любого другого прокси-сервера.
  • Настройте прокси-сервер HTTPPort (например, 5555) и клиенты (например, 192.168.0.0/24) на свою собственную маску сети и запустите прокси-сервер.
  • Вы используете веб-службы в:

    а. Веб-браузер. Настройте параметры прокси-сервера вашего устройства Android в сетях Modify WiFi.

    б. Приложение для Android: Настройте прокси для своего HTTP-клиента. Если вы используете Volley, проверьте это: Volley Behind proxy server.

  • Теперь вы можете подключиться к нему, используя любой URL-адрес, который вы используете на своем хосте, для подключения к веб-службе (например, http://my-local-machine.com)

Подсказка: если вы получили коды ответа 4xx, убедитесь, что ваш веб-сервис разрешает соединения с другими нелокальными узлами.

Ответ 10

В моем случае ничего из этих решений не работает, потому что брандмауэр Windows блокирует его, но включение правила в брандмауэр не влияет.

Проблема в моем случае заключается в том, что мой ноутбук подключен к Wi-Fi, а Windows имеет Wi-Fi-соединение, например, в сети общего пользования. Я должен изменить сетевое подключение к частной сети. http://www.comofuncionatodo.net/tecnologia/informatica/como-cambiar-de-red-publica-a-red-privada-en-windows-10/

Ответ 11

Если вы ссылаетесь на свой локальный хост в своей системе с эмулятора Android, вы должны использовать http://10.0.2.2:8080/  Поскольку эмулятор Android работает внутри виртуальной машины (QEMU), поэтому здесь 127.0.0.1 или localhost будет собственным адресом обратной связи эмулятора.