如何将安卓手机连接到运行在本地服务器上的网络服务?

4

我已经在模拟器上尝试过连接到我创建的Java Web服务。但是当我尝试从我的Android设备访问它时,它无法正常工作。有人知道如何解决这个问题吗?

另一个问题是,通过这种方式是否有可能让两个Android设备访问同一个数据库?

我正在使用Tomcat服务器和MySQL数据库。Web服务实际上是用来从MySQL数据库获取数据并传递给我的Android手机。

提前谢谢你。


我认为你无法在Android设备上连接本地Web服务。如果有任何方法,我很感兴趣了解。对于这个问题点赞。 - Dharmendra
6个回答

1

你能否在你的局域网IP上运行服务,而不是在本地主机上,并通过WiFi连接手机?

也可以通过设置代理来连接。


请问,如果我只有一台笔记本电脑(上面运行着服务)和手机,有没有办法实现这个目标呢?我能否使用WiFi热点或其他工具来实现?两台设备都支持WiFi,但我除了这两台设备之外没有其他设备。我知道如果有另一台设备,我们可以在其上运行WiFi热点,并将笔记本电脑和安卓手机连接到热点。 - Anas Azeem
你可以前往手机/模拟器的设置 -> 移动网络 -> 接入点名称,添加一个接入点并在其中输入代理设置。 - Prashant Gami
在您的情况下,您可以将其指向您的机器IP地址,并通过您的设备连接到互联网。 - Prashant Gami
抱歉@Prashant,我不知道该怎么做。你能指导我一下吗?在“新APN”类别中有许多条目需要填写,例如“APN”,“代理”,“端口”,“用户名”,“密码”等等。所以,如果我的笔记本电脑的IP是111.111.111.111,端口是80。现在该怎么办呢?我的原始问题发布在这里 - Anas Azeem

1
首先,您需要确保您的 Web 服务通过托管它的机器的 IP 可见。您可以尝试使用 IP 和可能正在侦听的任何端口号从另一个桌面访问 Web 服务器来测试此功能。
如果可能的话,那么连接您的手机到托管 Web 服务器的机器所在的同一网络段(路由器)并使用 Web 服务器的 IP(和端口号)即可。
假设数据库设置正确且您正在使用正确的客户端代码,则两个 Android 设备访问同一服务器应该没有任何问题。


0

你可以获取本地特定端口运行的服务器的公共URL。

在我的工作场所,我可以通过在应用程序中使用我的机器的本地IP地址来访问本地服务器,就像大多数其他答案建议的那样。但是在家里,由于某种原因,我无法这样做。尝试了很多答案并花费了很多时间后,我发现了https://ngrok.com。它非常简单明了。只需从文件夹内下载它并执行以下操作:

ngrok portnumber

(从Windows命令提示符中)

./ngrok portnumber

(来自Linux终端)

这将为您的本地服务器提供一个公共URL,该服务器在localhost上运行该端口号。您可以在应用程序中包含它并使用该URL进行调试。

您可以安全地将本地Web服务器暴露给互联网,并捕获所有流量以进行详细检查。您还可以与远程工作的同事开发人员共享URL,并调试App / Server交互。

希望这能节省某些人的时间。


0

你尝试过使用IP地址10.0.2.2吗?这是模拟器上的本地主机。


0

你可以尝试使用KSOAP2库访问WebService,目前可以在Google上搜索它 ;)


-1

当它在模拟器上运行时,它应该可以在真实设备上运行。也许这与代理或网络问题有关。

对于您的第二个问题。您是否为客户端使用本地数据库,例如SQLite?如果是,则每个设备都有自己的数据库,您需要通过Web服务将其同步到服务器数据库(MySQL)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接