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 создаст ссылку, доступную из Интернета и перенаправит на локальный веб-сервер.

Другие вопросы по тегам