如何将android手机连接到本地服务器上运行的Web服务?

时间:2012-10-21 03:00:48

标签: android mysql database web-services tomcat

我曾尝试过我的模拟器,它可以连接到我创建的java Web服务。但是当我尝试从我的Android设备访问时,它不起作用。有谁知道如何度过这个?

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

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

提前谢谢。

6 个答案:

答案 0 :(得分:1)

您可以在局域网IP上运行服务而不是本地主机,并通过wifi连接手机吗?

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

答案 1 :(得分:1)

首先,您需要确保您的Web服务通过托管它的计算机的IP可见。您可以尝试使用IP以及可能正在侦听的任何端口号从另一个桌面访问Web服务器来测试此问题。

如果可能,那么只需将您的手机连接到托管Web服务器的机器所在的同一网段(路由器),并使用Web服务器的IP(和端口号)。

假设数据库设置正确并且您使用的是正确的客户端代码,则访问同一服务器的所有2个Android设备应该没有问题。

答案 2 :(得分:0)

您是否尝试过IP地址10.0.2.2?那是模拟器上的localhost。

答案 3 :(得分:0)

你可以尝试使用KSOAP2库来访问WebService,现在谷歌吧;)

答案 4 :(得分:0)

您可以获取在localhost上的特定端口上运行的服务器的公共URL。

在我的工作场所,我可以使用应用程序中我的机器的本地IP地址访问本地服务器,正如大多数其他答案所示。但在家里,由于某种原因,我无法做到这一点。在尝试了很多答案并花了很多时间之后,我遇到了https://ngrok.com。这很直截了当。只需从文件夹中下载它:

ngrok portnumber

(来自windows中的命令提示符)

./ngrok portnumber

(来自linux中的终端)

这将为您提供在localhost上运行该端口号的本地服务器的公共URL。您可以在应用中加入并使用该URL进行调试。

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

希望有一天能节省一些人的时间。

答案 5 :(得分:-1)

当它在模拟器上运行时,它应该在真实设备上工作。也许这是代理或网络问题。

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