我如何让我的本地主机为我的android模拟器工作?



我使用的是Django服务器和react native前端(带有expo)。

我可以在浏览器和iOS模拟器(我使用Mac)上访问服务器,但是,在android模拟器上,我得到一个网络错误,它不能连接到我的服务器。

下面是正常工作的react原生代码:

componentDidMount = () => {
fetch("http://127.0.0.1:8000/api/events/?featured=true", {
method: "GET",
})

我做错了什么?

使用10.0.2.2访问android模拟器的实际机器

当您使用模拟器时,localhost(127.0.0.1)指的是设备自己的环回服务,而不是您可能期望的机器上的环回服务。

  1. 我将我的机器的IP添加到Django settings.py中的ALLOWED_HOSTS
  2. 然后我在我的机器的IP上运行我的服务器,命令:./manage.py runserver XX.XXX.XX。XX:8000(将X替换为机器的IP)
  3. 然后我将所有的react native函数更改为:
const root = "XX.XXX.XX.XX"
componentDidMount = () => {
fetch(root+"api/events/?featured=true", {
method: "GET",
})

将上述代码中的X替换为您的机器的ip地址。

最新更新