无法从Android设备访问localhost web服务

无法从Android设备访问localhost web服务,android,web-services,apache,localhost,Android,Web Services,Apache,Localhost,为了自己的测试目的,我用CakePHP构建了一个web服务 现在我用我真正的Android设备连接我的web服务(@localhost)。第一次尝试时,我设法加载了我的测试页面。然后,我关闭Apache服务器并测试它,以确保它不可用。测试完成后,我重新启动了Apache。但是,从那时起,我的Android设备无法加载我的页面(网页不可用)。我在我的web服务文件夹上有摘要身份验证,第一次尝试时,它被正确执行 到目前为止,我所做的是: 1.使用我真正的Android设备(不是模拟器)连接了我的本地

为了自己的测试目的,我用CakePHP构建了一个web服务

现在我用我真正的Android设备连接我的web服务(@localhost)。第一次尝试时,我设法加载了我的测试页面。然后,我关闭Apache服务器并测试它,以确保它不可用。测试完成后,我重新启动了Apache。但是,从那时起,我的Android设备无法加载我的页面(网页不可用)。我在我的web服务文件夹上有摘要身份验证,第一次尝试时,它被正确执行

到目前为止,我所做的是:
1.使用我真正的Android设备(不是模拟器)连接了我的本地主机() 2.将弹出摘要身份验证。
3.输入用户名和密码。已成功连接。
4.已关闭Apache服务器。
5.再次尝试连接我的本地主机(当然,“网页不可用”)。
6.重新启动Apache服务器。
7.再次尝试连接我的本地主机(重新加载不再工作…)

起初我认为可能是缓存问题或其他什么。因此,我已经清除了Android网络浏览器的所有缓存和任何表单数据,并再次尝试重新加载。但它再也不会重新加载了。然后,我尝试从另一台PC连接,它成功连接。只有Android设备无法重新加载我的页面

我能做些什么来解决这个问题吗?我需要使用我真正的Android设备进行调试,因为模拟器太慢了。我四处搜索,发现了几个类似的问题,但没有一个没有帮助,因为在我的情况下,我曾经成功地连接到该服务。只有一次无法重新加载页面,并且再也无法加载

提前谢谢

*编辑*
我刚刚使用Android emulator尝试了相同的序列,它成功地重新加载了。。。我甚至为我的真实设备尝试了另一种浏览器(海豚浏览器),但仍然无法加载我的页面…

可能web服务器正在环回接口上侦听,但没有在网络接口上侦听。这意味着点击
127.0.0.1
localhost
将起作用,但
192.168.xxx.xxx
将不起作用(无论是从localhost、LAN还是WAN)

要确定服务器正在侦听哪个接口,请查找命令以告诉您有关侦听端口的信息(我使用了
lsof-Pan-I tcp-I udp
)。然后在列表中查找您的服务器进程。对于
lsof
命令,如果对于端口8888,您看到类似于
TCP*:8888(LISTEN)
的内容,则您的服务器正在侦听所有接口。但是如果您看到类似于
TCP[::127.0.0.1]:8888(听)
的内容,那么您已经发现了您的问题

解决问题的下一步是设置服务器的运行配置以侦听所有接口。我对CakePHP一无所知,但是如果您可以指定IP地址,那么您可能希望尝试
0.0.0.0
。通常,您可以在允许指定侦听端口的位置附近执行此操作。因此,如果您有如下配置:

——端口8888

然后您可以尝试:


--端口8888--地址0.0.0.0

web服务器可能正在环回接口上侦听,但没有在网络接口上侦听。这意味着点击
127.0.0.1
localhost
将起作用,但
192.168.xxx.xxx
将不起作用(无论是从localhost、LAN还是WAN)

要确定服务器正在侦听哪个接口,请查找命令以告诉您有关侦听端口的信息(我使用了
lsof-Pan-I tcp-I udp
)。然后在列表中查找您的服务器进程。对于
lsof
命令,如果对于端口8888,您看到类似于
TCP*:8888(LISTEN)
的内容,则您的服务器正在侦听所有接口。但是如果您看到类似于
TCP[::127.0.0.1]:8888(听)
的内容,那么您已经发现了您的问题

解决问题的下一步是设置服务器的运行配置以侦听所有接口。我对CakePHP一无所知,但是如果您可以指定IP地址,那么您可能希望尝试
0.0.0.0
。通常,您可以在允许指定侦听端口的位置附近执行此操作。因此,如果您有如下配置:

——端口8888

然后您可以尝试:


--端口8888--地址0.0.0.0

您确定您的设备仍然可以访问您的机器(重新连接时与您的机器位于同一网络中)吗?如果是,当您重新启动apache时,您确定它正在侦听所有接口吗?谢谢您的回复,PCoder!不幸的是,我的设备无法连接到我的机器,但它们仍在同一网络上。Apache似乎还可以,因为我的另一台机器即使重新启动后也可以连接到web服务。
localhost
127.0.0.1
,而不是
192.168.xxx.xxx
。您的服务器需要设置为响应
192.168.xxx.xxx
的非
localhost
地址才能工作。感谢您的提示。但是,192.168.xxx.xxx是我的机器的外部IP地址,这是我连接到web服务所需要的。正如我所提到的,我第一次尝试连接它。我的web服务仍然可以从另一台机器上使用。仅从真实Android设备访问失败。您确定您的设备仍然可以访问您的计算机(重新连接时与您的计算机位于同一网络中)吗?如果是,当您重新启动apache时,您确定它正在侦听所有接口吗?谢谢您的回复,PCoder!不幸的是,我的设备无法连接到我的机器,但它们仍在同一网络上。Apache似乎还可以,因为我的另一台机器即使重新启动后也可以连接到web服务。
localhost
127.0.0.1
,而不是
192.168.xxx.xxx
。您的服务器需要设置为响应
192.168.xxx.xxx
的非
localhost
地址才能工作。谢谢