android node.js express reactjs react-native

android - Reacción nativa: error de solicitud de recuperación con error-TypeError: error de solicitud de red(...)



node.js express (2)

Dado que su dispositivo Android tiene una IP propia, debe apuntar la URL a la dirección IP de su computadora en lugar de solo a localhost. Por ejemplo, fetch(''http://192.168.0.2:3333/'') .

Estoy desarrollando una aplicación simple usando React Native. Lo estoy probando en el dispositivo Android. He creado un servidor Node.js para escuchar las solicitudes, se ejecuta en http://localhost:3333/ . A continuación, estoy realizando una solicitud de recuperación desde index.android.js. A continuación se muestra el código.

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

El código para el manejador de solicitudes en el servidor de nodo está abajo.

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

Pero, la solicitud de búsqueda no está funcionando. El error que recibo en la consola de Chrome es: TypeError: error en la solicitud de red (...).

¿Cómo hacer que esto funcione?


Use el comando inverso de la herramienta Android Debug Bridge (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>

Por ejemplo:

adb reverse tcp:3333 tcp:3333

Esto hace que localhost:3333 accesible desde su dispositivo. También puede utilizar diferentes puertos. Por ejemplo:

adb reverse tcp:8081 tcp:3333

Esto redireccionará el puerto del dispositivo 8081 al puerto local 3333.