React Native:获取请求失败,错误 – TypeError:networking请求失败(…)

我正在开发一个使用React Native的简单应用程序。 我正在Android设备上testing它。 我创build了一个Node.js服务器来侦听请求,它运行在http:// localhost:3333 /上 。 接下来,我正在从index.android.js提取一个请求。 下面是代码。

fetch('http://localhost:3333/', { 'method': 'GET', 'headers': { 'Accept': 'text/plain', } } ) .then((response) => response.text()) .then((responseText) => { console.log(responseText); }) .catch((error) => { console.warn(error); }); 

下面是节点服务器上的请求处理程序的代码

 app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }); app.use(express.static('public')); app.get('/', function(req, res){ console.log('Request received for /'); res.send("this is the response from the server"); res.end(); }); 

但是,获取请求不起作用。 我在Chrome控制台中遇到的错误是:TypeError:networking请求失败(…)。

如何使这项工作?

由于您的Android设备具有自己的IP,因此您需要将URL指向您的计算机IP地址而不是本地主机。 例如fetch('http://192.168.0.2:3333/')

使用Androiddebugging桥工具(adb)的反向命令:

 adb reverse <remote> <local> - reverse socket connections. reverse specs are one of: tcp:<port> localabstract:<unix domain socket name> localreserved:<unix domain socket name> localfilesystem:<unix domain socket name> 

例如:

 adb reverse tcp:3333 tcp:3333 

这使得您的设备可以访问localhost:3333 。 您也可以使用不同的端口。 例如:

 adb reverse tcp:8081 tcp:3333 

这会将设备端口8081redirect到服务端口3333。