У меня следующая проблема. Я получаю данные, отправляя запрос api на сервер, работающий на моем локальном компьютере. Сервер написан на ASP.NET. Я знаю, что когда мне нужно сделать запрос на localhost, когда я использую эмулятор, я должен указать свой IP-адрес для успешного вызова моего локального компьютера вместо эмулятора. Даже когда я изменил свой IP-адрес, у меня все еще есть ошибка erorr 'Ошибка сетевого запроса'
Это код, в котором я получаю данные
componentDidMount() {
fetch('http://IpAdress:54372/api/cars')
.then((response) => response.json())
.then((responseJson) => this.setState({cars: responseJson}))
.catch((error) => {
console.error(error);
})
;
}
package.json
"react": "^16.3.0-alpha.2",
"react-native": "0.55.3",
Если вы используете локальный сервер, используйте 10.0.2.2 для эмулятора Android и 10.0.3.2 для genymotion.
вы можете предоставить своему локальному хосту глобальный домен, использовать инструмент ngrok, доступный для Windows Mac и Linux.
Подключиться через Wi-Fi
Вы также можете подключиться к серверу разработки через Wi-Fi. Сначала вам нужно установить приложение на свое устройство с помощью USB-кабеля, но как только это будет сделано, вы сможете выполнять отладку по беспроводной сети, следуя этим инструкциям.
Прежде чем продолжить, вам понадобится текущий IP-адрес вашей машины для разработки.
Откройте терминал и введите / sbin / ifconfig, чтобы узнать IP-адрес вашего компьютера.
Убедитесь, что ваш ноутбук и телефон находятся в одной сети Wi-Fi.
Откройте приложение React Native на своем устройстве. Вы увидите красный экран с ошибкой. Хорошо. Следующие шаги исправят это. Откройте меню разработчика в приложении. Перейдите к Настройки разработчика → Хост сервера отладки для устройства. Введите IP-адрес вашего компьютера и порт локального сервера разработки (например, 10.0.1.1:8081). Вернитесь в меню разработчика и выберите «Обновить JS».
Теперь вы можете включить Live reloading из меню разработчика. Ваше приложение будет перезагружаться при изменении кода JavaScript.
что дает мне добавить ip и порт моего сервера в настройках dev?
Добавьте свой IP-адрес в Info.plist так же, как указан localhost:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>your.ip.adress.here</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
все еще не работает