4

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

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

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

先感谢您。

4

6 回答 6

1

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

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

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

于 2012-10-21T04:27:46.757 回答
1

您可以在您的 LAN IP 上而不是本地主机上运行该服务并通过 wifi 连接电话吗?

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

于 2012-10-21T03:22:36.223 回答
0

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

于 2012-10-21T05:23:09.003 回答
0

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

于 2012-10-21T05:34:04.853 回答
0

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

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

ngrok portnumber

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

./ngrok portnumber

(来自linux终端)

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

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

希望有一天这可以节省某人的时间。

于 2014-01-04T07:24:35.227 回答
-1

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

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

于 2012-10-21T03:21:14.163 回答