【问题标题】:I can connect to localhost at emulator but not on real device我可以在模拟器上连接到本地主机,但不能在真实设备上
【发布时间】:2017-03-07 23:16:51
【问题描述】:

我确实对这个问题进行了研究,但对我没有任何帮助。我正在使用 WampServer 并且有一个 php 网络服务。

我在 Android Studio 上编写了一个应用程序。我在本地主机上有一个login.php。在 android 模拟器上我使用 10.0.2.2:8080/login.php 并且一切正常。但在真实设备上,它不起作用。我试过了

127.0.0.1:8080(本地主机)
192.168.2.1:8080(默认网关)
192.168.2.60:8080(IPv4 地址)。

没有任何效果,我该怎么办?希望有人知道答案

提前谢谢你

【问题讨论】:

  • 你如何在 android 上运行 Wamp 服务器?因为在模拟器上你连接到一个 ipaddress 和端口。本地主机意味着在与请求数据的设备相同的设备上运行服务器
  • 使用您的 PC/笔记本电脑的 IP 在真实设备上使用并确保您的 PC/笔记本电脑与您的设备使用相同的连接
  • 我没有在设备上运行服务器。服务器在笔记本电脑上。我写了一个应用程序,它可以去 login.php 并在模拟器上做这些事情。但是当我在真实设备上使用这个应用程序时。它没有登录。
  • It doesn't login。非常糟糕的问题描述。喜欢its not working。请花更多的精力告诉我们会发生什么。您在 logcat 中看到了哪些错误/异常?
  • 在您设备上的浏览器中尝试该网址。

标签: php android localhost wamp


【解决方案1】:

过去 2 天我确实遇到了同样的问题,但我最终找到了解决方法:
1) 更改 httpd.conf 中的条目:

#onlineoffline tag – don’t remove
Require local

#onlineoffline tag – don’t remove
Require all granted

来源:https://www.youtube.com/watch?v=XbBGYm14xY4

2) 更改 httpd-vhosts.conf 中的条目:

<Directory “c:/wamp64/www/”>
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>

<Directory “c:/wamp64/www/”>
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>

来源:https://www.youtube.com/watch?v=WzD_J9vSF0E

【讨论】:

    【解决方案2】:

    您应该连接到您的 PC 的本地 IP(您可以检查 ipconfig/ifconfig)。

    我猜那是你写的192.168.2.60:8080。然后确保您在同一个网络上,并且您的 PC 上的端口 8080 已打开。

    【讨论】:

    • 我试过那个 ip 但没有运气。这些设备在同一个网络上(我家)
    • 可能是防火墙阻止了你 -> 在你的电脑上禁用防火墙,然后再试一次。
    • 我禁用了防火墙,但仍然无法正常工作。在模拟器上 8080 端口正在工作。但是在设备上我尝试了一切,但没有运气。我真的很深
    • 好的,这很有趣。您可以在浏览器中测试连接,例如您可以向您的服务器发出任何请求:localhost:8080/whatever-goes-here 从您的 PC 浏览器,就像您在应用程序中一样。您应该会看到一些响应(200 或 400 代码)。如果可行,请从您的设备浏览器转到192.168.2.60:8080/whatever-goes-here(执行 ipconfig 以确保地址没有更改)并检查连接。这样我们就可以消除您的应用没有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2014-03-27
    • 2016-02-14
    相关资源
    最近更新 更多