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

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

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

  1. отключите кабель lan или отключите любое другое интернет-соединение с вашего компьютера.
  2. подключите свой Android-плеер к компьютеру с помощью usb.
  3. включить USB-модем
  4. назад к вашему компьютеру. проверьте свой ip. мой – 192.168.42.37
  5. проверьте свое приложение webservice на своем компьютере. скажем, http://192.168.42.37/webserviceapp
  6. обратно к вашему мобильному телефону Android. попробуйте этот URL-адрес http://192.168.42.37/webserviceapp

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

Это гораздо проще, чем Google!

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

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

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

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

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

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

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

Надеюсь, что эта помощь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LAN IP: 192.168.xx

Шаг 2:

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

Сервер GAE

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

Шаг 3:

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

Http: //192.168.xx: 8888 /

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

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

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

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

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

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

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

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

  • Как выйти из приложения Android
  • Не удалось найти runtime.jar (android.arch.lifecycle: runtime: 1.0.0)
  • Вход в Google не работает после публикации в магазине воспроизведения
  • Как настроить gradle для работы «в автономном режиме» (используя кешированные зависимости)
  • Как правильно использовать AsyncTask в Android
  • java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader
  • Обновление библиотеки поддержки 23.2.0 build bug
  • Как сохранить данные в приложении Android
  • Как отклонить индикатор выполнения, даже если нет представления о заполнении в FirebaseListAdapter?
  • Неисправность работы с камерой в onActivityResult
  • После обновления службы Google Play до версии 13 я получил ошибку
  • Interesting Posts

    Настройка локальной сети удаленного доступа за несколькими маршрутизаторами?

    Алгоритм раздувания / дефляции (смещения, буферизации) полигонов

    Атака VNC на OS X 10.10 – нужно ли мне беспокоиться / отвечать?

    Многоядерный процессор: могу ли я сказать, что у меня 3×2,1 ГГц = 6,3 ГГц процессор?

    Cron: запустить процесс, но только если он не работает?

    Получение событий из базы данных

    Отсутствие имен символов при профилировании приложения IPhone с помощью инструментов

    Дата JSON для даты Java?

    Приложение Excel VBA автоматически останавливается с сообщением «Выполнение кода приостановлено»

    Ноутбук Toshiba A200 под управлением Ubuntu зависает / зависает при подключении

    Чтение и непрочитанное в mutt

    Android: Как создавать звуковые эффекты fade-in / fade-out для любого музыкального файла, который играет мое приложение?

    Почему торренты замедляют мой интернет?

    Чтение нескольких (excel) файлов в R – Лучшая практика

    Вывод мусора: MediaPlayer завершился без выпуска

    Давайте будем гением компьютера.