React Native Fetch 返回网络请求失败

3
我正在使用React Native开发一个简单的应用程序。我正在Genymotion Android模拟器上测试它。我已经创建了本地Web服务器来监听请求,它正在http://localhost:8082/API/上运行。 我已经测试了API并且正常工作。然后,我从index.android.js中进行了fetch请求。
以下是React Native代码中的API示例请求:
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;

下面是使用flightPHP构建的Api服务器的代码:

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();
}
});

执行此调用后,我收到“网络请求失败()”的消息。看起来安卓模拟器无法识别API网址。有什么建议吗?谢谢。
2个回答

2
我已经解决了。只需要在React代码中更改API网址var url = "http://127.0.0.1:8082/API/var url = "http://local-ip-address:8082/API/,保留HTML标签。要检查本地IP地址,只需从命令行/cmd运行ipconfig。

0
您可以使用ngrok覆盖网络请求。Android是模拟器,当您获取127.0.0.1时,它会转到本地手机。ngrok将创建一个可从网络访问的链接,并重定向到本地Web服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接