2011-02-16 12 views
1

所以我想在实际的Android设备上测试我的应用程序。我已经在虚拟设备上进行了调试,并且工作正常,但我希望它现在可以在实际的手机上工作,以进行调试,而且还可以进行调试。我将用于访问本地托管服务器的IP从10.0.2.2更改为我自己的IP。所以每次我打电话我的应用程序查询,它去从服务器:在本地为Android应用程序使用托管服务器时,是否需要执行端口转发?

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使用的工作呢?或者其他任何事情,为了解决这个问题呢?谢谢。

回答

1

你的描述似乎并不十分清楚,但如果我理解正确的话,你的应用程序正在通过公网到自己的PC HTTP调用,通过您的公共IP地址,则需要打开的唯一端口为80(假设不安全的HTTP)。

你说“应用程序冻结了几分钟,然后仿佛任务已经完成移动的”。你的意思是分钟,还是只是很多秒?如果分钟,这听起来不正确,因为HTTP超时时间不长。

如果是我,我会想:

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

  • 我想尝试访问使用设备上的浏览器的HTTP URL,看它是否真正具有访问它。

  • 检查端口转发。通常情况下,路由器默认配置为处理传入的HTTP请求,因为它会产生安全风险。如果您之前设置了该功能,但现在无法运行,是否有可能由于您的PC具有不同的IP地址而导致从路由器到PC的端口出现故障?

+0

我会再试一次,并检查logcat是否引发了确切的异常。我也会打开端口80.我是否需要将IP调用更改为“http:// myip:80/page.php”? – JMRboosties 2011-02-16 20:33:19

相关问题