【问题标题】:How to connect android phone to a web service run on local server?如何将安卓手机连接到本地服务器上运行的网络服务?
【发布时间】:2012-10-11 06:23:07
【问题描述】:

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

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

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

提前谢谢你。

【问题讨论】:

  • 我认为您无法在 Android 设备中连接本地网络服务。如果有任何方法,那么我有兴趣知道这一点。为问题 +1。

标签: android mysql database web-services tomcat


【解决方案1】:

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

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

【讨论】:

  • 你能告诉我,如果我只有一台笔记本电脑(运行服务)和手机,有什么方法可以实现这一点。我可以使用 WiFi 热点或其他工具来实现它吗?这两个设备都有 WiFi,除了这两个设备我没有任何其他设备。我知道如果我们有另一台设备,我们可以做到这一点,WiFi 热点正在其上运行,并将笔记本电脑和 Android 手机连接到热点。
  • 您好,您可以进入手机/模拟器设置 -> 移动网络 -> 接入点名称并添加一个接入点并将您的代理设置放在那里,
  • 在您的情况下,您可以将其指向您的机器 IP 地址并通过您的设备连接到 Internet
  • 对不起@Prashant,但我不知道该怎么做。你能给我指路吗,请。 新 APN 类别中有许多条目需要填写,例如 APNProxyPortUsernamePassword 等。所以,如果我的笔记本电脑的 IP111.111.111.111,而 port80。现在该怎么办。我原来的问题发布在here
【解决方案2】:

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

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

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

【讨论】:

  • 先生,我已经尝试按照您的指示进行操作。我的 WebServiceUrl 是“localhost:50857/api/Customer”;但是每当我尝试在手机中访问它时,它都不会显示任何内容。我什至将“localhost”这个词更改为我笔记本电脑的 IP 地址,希望我可以在手机中访问它,但仍然无法访问。
  • 你是否连接到同一个网段的wifi?
【解决方案3】:

你试过 IP 地址 10.0.2.2 吗?那是模拟器上的localhost。

【讨论】:

    【解决方案4】:

    您可以尝试使用 KSOAP2 库来访问 WebService,现在 google 一下;)

    【讨论】:

      【解决方案5】:

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

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

      ngrok portnumber
      

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

      ./ngrok portnumber
      

      (来自linux终端)

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

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

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

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-09
          • 2019-08-10
          • 1970-01-01
          • 1970-01-01
          • 2012-10-27
          • 1970-01-01
          相关资源
          最近更新 更多