Доступ к локальному хосту: порт из эмулятора Android

Я запускаю веб-службу на моем локальном компьютере, которая работает на localhost: 54722 .

Я хочу вызвать из приложения, работающего в эмуляторе Android.

Я читал, что использование 10.0.2.2 в приложении приведет к доступу к localhost, но, похоже, это не работает и с номером порта. Он говорит HttpResponseException: неверный запрос .

197
задан Akhil Jain 7 December 2012 в 02:46
поделиться

2 ответа

Я использую Windows 10 в качестве платформы разработки, доступ к 10.0.2.2:port в моем эмуляторе работает не так, как ожидалось, и такой же результат для других решений в этом вопросе.

После нескольких часов копания я обнаружил, что если вы добавите аргумент -writable-system в команду запуска эмулятора, все будет работать.

Вы должны запустить эмулятор с помощью командной строки, как показано ниже:

 emulator.exe -avd <emulator_name> -writable-system

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

http://192.168.1.2:<port>

Надеюсь, это поможет тебе.

О запуске эмулятора из командной строки: https://developer.android.com/studio/run/emulator-commandline .

1
ответ дан 23 November 2019 в 05:13
поделиться

Объяснение, почему localhost не доступно от эмуляторов ни для кого, у кого есть основная проблема доступа. Поскольку сложные случаи читают другие ответы.

проблема: Эмулятор имеет собственный , локальная сеть и localhost отображает себя на [1 116] эмулятор , но НЕ Ваш хост!

Решение:

  1. Обязывают Ваш сервер с 0.0.0.0 делать, это доступный для сети эмулятора
  2. Получает внешний IP-адрес Вашего ноутбука: ifconfig команда для Mac
  3. В Android (или приложение Дрожания) используют IP-адрес Вашего внешнего интерфейса как: 192.168.1.10 вместо localhost
0
ответ дан 23 November 2019 в 05:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: