我只是使用“fetch”将 GET 请求发送到我的本地主机 API,但它显示网络失败。它可以将 GET 请求发送到其他非本地主机网站。
我想知道如何访问我的本地主机 API。环境是我使用NativeBase并通过Expo在android模拟器上运行它。世博连接是 LAN。
谢谢你。
您必须使用 ip 而不是 localhost:
对于 Windows:ipconfig(IP 地址) 对于 Mac:networksetup -getinfo Wi-Fi(IP 地址)
请求是这样的:
axios.get('http://192.168.0.34')
我建议使用 axios 进行 React Native
您可以使用
expo-constants
模块的清单在运行时获取 IP 地址。
如果您没有安装此模块,请运行
expo install expo-constants
import Constants from 'expo-constants';
const { manifest } = Constants;
...
const uri = `http://${manifest.debuggerHost
.split(`:`)
.shift()
.concat(`:1000`)}`; // Switch to the port you use. ex)localhost:3000 => .concat(`:3000`)}
无意中我找到了一个方法。进入Windows安全>防火墙和网络保护并关闭其中三个。然后你可以做两件事。
1-进入cmd并写入ipconfig,获取ip
2-在反应本机项目上:
从“expo-constants”导入常量;
const { 清单 } = 常量;
const uri =
ws://${manifest.debuggerHost.split(':').shift()}:3000
;
这样你就可以动态获取你的ip。 (切换您想要的端口)
localhost 或 127.0.01 对我不起作用。
import Constants from 'expo-constants';
const { manifest } = Constants;
const uri = `http://${manifest.debuggerHost
.split(`:`)
.shift()
.concat(`:1000`)}`;
这个有效