0

我尝试使用 nanohttpd 演示应用程序在 Android 上设置一个简单的 Web 服务器,而无需修改。我使用的 Android 设备运行的是 Android 4.0.3。

我可以从其他设备访问 Web 服务器,但无法从运行 Web 服务器的同一 Android 设备上的浏览器(Firefox、Chrome 和本机 Android 浏览器)连接到 Web 服务器。

我尝试了各种地址和端口组合都没有成功(localhost、127.0.0.1、10.0.0.2,实际分配的IP地址,端口8080、8082)。我也尝试过将 nanohttpd 应用程序直接绑定到 127.0.0.1,但也没有成功。我已经验证我可以使用 Android 设备上的终端应用程序“ping”这些地址,所以看起来网络连接很好。

对 Android 是否有限制,会阻止浏览器连接到本地 Web 服务器实例,如果有,是否需要修改配置设置或权限才能使其正常工作?

4

3 回答 3

1

1) 您需要在 AndroidManifest.xml 中授予 Internet 权限。

<uses-permission android:name="android.permission.INTERNET" />

2)如果没有root,端口80也将不可用。

有关更多信息,请参阅此问题

3) 在您的设备上禁用任何 VPN 或代理应用程序或数据压缩

于 2014-10-06T14:02:21.977 回答
1

通过一系列的反复试验,我相信我已经掌握了正在发生的事情。当我从 Web 服务器应用程序切换到浏览器尝试请求时,Web 服务器应用程序被挂起,因此不会接受连接。我曾假设应用程序在后台运行,但显然情况并非如此。

我将探索如何将 Web 服务器作为后台服务运行,并看看它会把我带到哪里。

在将 nanohttpd 网络服务器嵌入到 Android 服务中后,一切都按照我最初的预期工作。

于 2014-10-07T01:11:59.033 回答
0

将请求 url 更改为http://localhost:port或者如果您想在模拟器上使用 localhost 的 IP 地址,您可以使用此处的文档。

于 2020-02-11T13:12:18.587 回答