2011-09-14 76 views
0

我想通過PHP腳本從MySQL數據庫中獲取一些數據。 我的代碼是: `Android Httpget超時

  HttpClient httpclient = new DefaultHttpClient(); 

      HttpGet httpget = new HttpGet("http://example.com/fscript.php"); 
      HttpResponse response= null; 
      System.out.println(httpget.toString()); 
      try{ 
       response= httpclient.execute(httpget); 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 

,我總是得到一個超時的logcat中,並在堆棧跟蹤:

java.net.SocketException: The operation timed out 

當我使用相同的代碼,但指向http://10.0.2.2:90/fscript.php,服務器我有在我的開發機器上,它工作正常,所以我認爲是與遠程服務器相關的東西。 而當我在瀏覽器中寫入地址時,它會返回我的腳本返回的json字符串,所以我猜這個問題不是php。 在我的清單中,我在應用程序中擁有Internet權限,是否需要其他內容? 或者,也許這是我必須在我的網絡服務器配置接受來自android的調用?

只是猜測,將不勝感激任何幫助。

回答

1

可能重複的答案

這是發生,因爲有時你的服務器時間過長迴應。其實這也可能是由於網絡速度較慢而發生的,所以您無法完全控制它。如果您使用HttpClient的,你可以增加超時時間:

java.net.socketexception: The operation timed out problem in android?

+0

對不起,如果它是重複的,我會盡量延長時間,並會讓你知道,如果這是問題。謝謝 –

0

您的Web服務器闊佬呼叫是從Android設備。它只是看到一個HTTP請求進來並相應地處理它。我會調查你的Android設備是否實際上能夠首先接觸到非本地地址。例如也許防火牆阻止了這個請求。如果這是在Android模擬器中,請確保其網絡橋接配置正確。

+0

其實是模擬器,我會檢查你的提示,謝謝。 –