1

所以我想在实际的 android 设备上测试我的应用程序。我已经在虚拟设备上对其进行了调试,并且运行顺畅,但我希望它现在能够在实际手机上进行调试等等。我将用于访问本地托管服务器的 IP 从 10.0.2.2 更改为我自己的。所以每次我调用我的应用程序查询的服务器时,它来自:

HttpPost httpPost = new HttpPost("http://10.0.2.2/pagemyappwants.php");

HttpPost httpPost = new HttpPost("http://76.blahblah.etc/pagemyappwants.php");

后者是我自己计算机的 IP,我过去曾用它来运行远程访问的服务器。我已经为我正在运行的 wamp/apache 服务器测试了这个,并且使用这个 IP 你可以从其他计算机访问 php 页面。但是,当我尝试使用我的应用程序时,该应用程序冻结了几分钟,然后像任务完成一样继续前进,但是当检查将记录通过该应用程序进行的更改/添加的 mysql 数据库时,什么都没有发生.

所以总而言之,我需要做任何端口转发才能让本地托管的服务器供 android 使用吗?或者其他任何可以解决这个问题的东西?谢谢你。

4

1 回答 1

1

您的描述似乎不是很清楚,但如果我正确理解您的应用程序通过您的公共 IP 地址通过公共网络向您自己的 PC 发出 HTTP 调用,那么唯一需要打开的端口是端口 80(假设非- 安全的 HTTP)。

您说“应用程序冻结了几分钟,然后像任务完成一样继续前进”。您实际上是指几分钟,还是仅仅几秒钟?如果是几分钟,那听起来不正确,因为 HTTP 超时并没有那么长。

如果是我,我想:

  • 对 HTTP 调用进行一些跟踪/调试,以确切了解发生了什么,特别是抛出了什么异常,或者返回了什么结果。听起来它正在超时,但你没有提到异常,这让我认为你的应用程序现在正在正确处理异常。

  • 我会尝试使用设备上的浏览器访问 HTTP URL,看看它是否真的可以访问它。

  • 检查端口转发。路由器默认配置为处理传入的 HTTP 请求并不常见,因为它会产生安全风险。如果您之前已设置,但现在无法正常工作,是否可能是从路由器转发到您的 PC 的端口失败,因为您的 PC 具有不同的 IP 地址?

于 2011-02-16T20:25:03.843 回答