#android #react-native #fetch #hosts-file
Вопрос:
У меня есть собственное приложение react, работающее на эмуляторе Android, и я пытаюсь сделать запрос к своему локальному api(работающему на моем ноутбуке) по адресу https://dev.mywebsite.com/api . Этот домен является хостом, зарегистрированным в эмуляторе, вот так :
/etc/hosts
и /system/etc/hosts
и /etc/system/hosts
у всех есть:
127.0.0.1 localhost
::1 ip6-localhost
10.0.2.2 dev.mywebsite.com
Примечание: Я также попробовал свой локальный ip-адрес 192.168.1.13
У домена есть настоящий ssl-сертификат, и я могу получить к нему доступ из chrome на эмуляторе без проблем.
Изменение моего вызова api на целевой https://mywebsite.com/api который развернут в производстве, действительно работает.
Запуск adb shell
и пинг dev.mywebsite.com
по какой-то причине показывают 127.0.0.1?
Почему chrome в эмуляторе работает, а мое собственное приложение react — нет? Если вы поможете мне решить эту проблему, я буду так взволнован 🙂 Может быть, есть какой-то обходной путь для этого? Я назначу награду за репутацию.
Редактировать
Я заставил его работать на физическом устройстве(не эмуляторе). Я использовал приложение под названием «Hosts Go» для размещения файла в 192.168.1.13, и оно работает. Почему приложение Hosts Go работает, а файл hosts эмулятора-нет? Я не смог отредактировать файл hosts на своем физическом устройстве, так как он не укоренен для проверки этого.
Ответ №1:
Хорошо, если это не относится к более сложным проблемам для отладки…
Поместите пустую строку в конец вашего файла hosts.
Chrome по какой-то причине работает, если в вашем файле hosts его нет, но запрос из вашего приложения не будет.