1

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

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

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

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

我能做些什么来解决这个问题吗?我需要使用我真正的 Android 设备进行调试,因为模拟器对于这项工作来说太慢了。我四处搜索,发现了几个类似的问题,但没有一个没有帮助,因为就我而言,我曾经成功连接到该服务。只是一次未能重新加载页面并且再也没有加载它......

提前致谢。

* 编辑 * 我刚刚使用 Android 模拟器尝试了相同的序列并成功重新加载...我什至为我的真实设备尝试了另一个浏览器(海豚浏览器)但仍然无法加载我的页面...

4

1 回答 1

1

可能 Web 服务器正在侦听环回接口而不是网络接口。这意味着命中127.0.0.1并且localhost会起作用,但192.168.xxx.xxx不会(无论是来自本地主机、局域网还是广域网)。

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

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

--port 8888

然后你可以尝试:

--port 8888 --address 0.0.0.0

于 2013-05-24T20:23:15.227 回答