【问题标题】:Can't access my laptop's localhost through an Android app无法通过 Android 应用访问我的笔记本电脑的本地主机
【发布时间】:2014-07-06 04:08:20
【问题描述】:

因此,我在发布此内容之前进行了研究,更准确地说,我发现的解决方案不起作用:

-连接到我笔记本电脑的 IPv4 192.168.XXX.XXX - 不起作用

-连接到10.0.2.2(加上端口)- 不起作用

我需要测试我使用 Django Rest 框架构建的 API,以便我可以得到它返回的 json,但我无法通过我正在构建的 Android 应用程序访问(我正在使用真实设备进行测试,而不是模拟器)。清单上设置了 Internet 权限,我可以正常访问远程网站。只是无法访问我笔记本电脑的本地主机(它们在同一个网络中)

我对 Android、Python 和 Django 也很陌生(用于构建 Django 的 Rest Framework API)。

编辑:我使用localhost:8000/snippets.json 或类似这样的东西连接到我的笔记本电脑上。

PS:我读过一些关于 XAMP 服务器的东西……在这种情况下我需要它吗?

提前致谢

【问题讨论】:

  • 你使用什么命令来运行服务器?您是否通过内置的 Web 服务器运行它?还是通过像 Apache 或 nginx 这样更工业化的?
  • 10.0.2.2 仅适用于模拟器。 localhost 也不起作用,因为它会引用 Android 设备本身。 IP 地址是您最好的选择。您的机器是否连接到与设备相同的 wifi 网络?您是否有可能阻止连接的防火墙?
  • 两者在同一个连接上。我有一个在 MYSQL 工作台上运行的 MYSQL 数据库,并且 Django Rest API 连接到该数据库以获取数据编辑:通过内置的 Web 服务器猜测它..

标签: android python django localhost django-rest-framework


【解决方案1】:

你有没有这样启动过服务器?

python manage.py runserver 0.0.0.0:8000

然后,尝试连接到 192.168.XXX.XXX:8000

【讨论】:

  • 我刚刚通过 PyCharm 运行了 API。它会自动运行服务器,但我会尝试你的建议。顺便说一句,0.0.0.0 是什么意思?不应该是 localhost 什么的?
  • 一切正常。我可以通过手机浏览器访问网络服务
  • 这意味着将应用程序开放给所有可以访问您计算机的网络。通过 LAN,可以通过其 IP 访问您的计算机。
  • 谢谢!我搜索了整个谷歌并找不到这个解决方案。
【解决方案2】:

我尝试了上述方法,但在我的情况下失败了。然后随着运行 python manage.py runserver 0.0.0.0:8000 我还必须在 settings.py 中将我的 IP 添加到 ALLOWED_HOSTS,这解决了这个问题。

例如。 在 settings.py 中将您的 ip 添加到允许的主机 ALLOWED_HOSTS = ['192.168.XXX.XXX']

然后运行服务器 python manage.py runserver 0.0.0.0:8000

【讨论】:

    【解决方案3】:

    其他人已经给出了答案,但是当我在 Ubuntu 上运行 Django 服务器并尝试从我的移动应用程序访问它时,这些解决方案对我不起作用。

    以下对我有用:

    第 1 步:运行服务器以从您的 IP 访问它

    python manage.py runserver 0.0.0.0:8000
    

    第 2 步:在防火墙中打开端口(上面给出的答案中缺少步骤 - Ubuntu 需要)

    $ sudo ufw enable 
    $ sudo ufw allow 8000
    

    【讨论】:

      猜你喜欢
      • 2016-02-07
      • 2018-06-09
      • 1970-01-01
      • 2012-12-19
      • 2012-07-04
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      相关资源
      最近更新 更多