React Native Fetch Не удалось вернуть запрос сети
Я занимаюсь разработкой простого приложения с использованием React Native. Я тестирую его на Android-эмуляторе Genymotion. Я создал локальный веб-сервер для прослушивания запросов, он работает по адресу http://localhost:8082/API/. Я проверил API и работает правильно. Затем я делаю запрос на выборку из index.android.js.
Вот пример запроса API из кода React Native:
var api = { getUser(){
var url = "http://127.0.0.1:8082/API/";
return fetch(url)
.then((res) => res.json())
.catch(
(error)=>{
console.log('error' + error.message);
throw error;
}
);
}
}
module.exports = api;
Вот код с сервера Api (построен с FlightPHP)
Flight::route('GET /',function(){
try{
$db = new PDO('mysql:host=localhost;port=3307;dbname=testapp', 'root','');
$stmt = $db->prepare("SELECT * FROM user LIMIT 1");
$stmt->execute();
header('Content-type: application/json');
echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
$db = null;
}catch(Pdoexception $e){
echo $e->getMessage();
}
});
после выполнения этого вызова я получаю Сетевой запрос Failed(). Похоже, Android-симулятор не распознает URL-адрес API. любое предложение? спасибо, прежде чем
2 ответа
Я уже решил. просто измените URL API var url = "http://127.0.0.1:8082/API/
в коде реакции. в var url = "http://local-ip-address:8082/API/
чтобы проверить свой локальный ip, просто запустите ipconfig из командной строки / cmd
Вы можете использовать ngrok для перезаписи сетевых запросов. Android является эмулятором, и когда вы получаете 127.0.0.1, он идет на локальный телефон. ngrok создаст ссылку, доступную из Интернета и перенаправит на локальный веб-сервер.