2011-02-16 11 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

相關問題