在react native中调用localhost API(android设备:通过本地连接)

时间:2019-02-03 12:06:42

标签: android react-native fetch axios firewall

已经使用node.js创建了一个简单的GET API,并尝试使用axios / fetch在我的具有曝光效果的本机项目中使用它。

每当用户单击“提交”按钮时,就会调用GET API。

提交-> http://localhost:port/api

但是,当我尝试通过数据电缆连接设备并在expo中选择“本地”连接类型来测试我的android设备上的功能时,API调用始终处于异常状态。

当我尝试记录该异常时,该异常打印为空。

我仔细检查了API,并通过邮递员进行了测试。

我尝试用my-Ip(http://IP:port/api)和127.0.0.1/127.0.2.2(http://127.0.0.1:port/apihttp://127.0.2.2:port/api)替换localhost url,但是似乎没有什么使API生效叫成功。

当我用Facebook的网络示例API替换localhost URL时,该应用程序运行正常。因此,API调用方法没有问题。

此外,尝试将端口添加到Windows入站防火墙请求中,但这也无法正常工作。

有人可以帮我吗?

3 个答案:

答案 0 :(得分:0)

是的,在使用我的本地IP(例如:http://192.168.1.55:port)而不是127.0.0.1之前,我也遇到了这个问题 请参阅this answer

答案 1 :(得分:0)

您必须从本地IP地址调用API。要获取您的本地IP,只需执行以下操作:

如果您使用的是Ubuntu 16.04:

ifconfig | grep 192

如果您使用的是Ubuntu 18.04:

ip -c a | grep 192

您的本地IP地址可能类似于192.168.0.XXX

答案 2 :(得分:0)

早上好, 这正在工作

我使用我机器的IP以太网适配器以太网2:IPV4地址

并在防火墙上同时允许我的端口入站和出站规则

enter image description here