2011-12-13 119 views
2

我試圖從android應用程序(帶模擬器)發送數據到web服務器(一個php頁面)時下。首先,我曾用模擬器嘗試過這個程序,並且它已經成功運行。在那之後,我試過此程序電話,但出現異常:超時異常(從Android發送數據到PHP頁面)

- > IO例外:操作超時。我的代碼

第一部分:

HttpClient httpclient = new DefaultHttpClient(); 

HttpPost httppost = new HttpPost("http://192.168.1.33:90/takeDatas.php"); 
try {     
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
    nameValuePairs.add(new BasicNameValuePair("enlem", latitude)); 
    nameValuePairs.add(new BasicNameValuePair("boylam", longitude)); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
    httpclient.execute(httppost); 

} catch (ClientProtocolException e) { 
    Toast.makeText(ReportLocationActivity.this, "Client protokol exception ", Toast.LENGTH_LONG).show(); 
} catch (IOException e) { 
    Toast.makeText(ReportLocationActivity.this, "IO exception "+e.getMessage(), Toast.LENGTH_LONG).show(); 
} 

我希望你能幫助我。 在此先感謝。

+0

您的手機是否接收數據 – zode64 2011-12-13 20:23:26

+0

不,我只看到這個例外。 – iremce 2011-12-13 20:38:02

回答

1

10.0.2.2是仿真器歸屬到主機的IP。

而在一般情況下,10.x.x.x是private IP block的一部分。

所以,你必須是託管模擬器上運行在同一臺機器上的服務器?這是我能看到它在模擬器內工作的唯一方法。

反正你的應用需要你的服務器的實際IP,如果你想要你的網絡之外的工作,你需要你的公網IP(找到你here),並設置端口轉發端口90,如果你有一個路由器。 This site是可怕的廣告謎團,但有大量路由器特定的指令。