2011-07-24 66 views
1

我想用下面的代碼Android的MySQL連接

try{ 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://127.0.0.1/mytable.php"); 
    // HttpPost httppost = new HttpPost("http://localhost/mytable.php"); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
    HttpResponse response = httpclient.execute(httppost); 
    HttpEntity entity = response.getEntity(); 
    is = entity.getContent(); 
}catch(Exception e){ 
    Log.e("log_tag", "Error in http connection"+e.toString()); 
} 

PHP-MySQL時,控制繼續httpclient.execute(httppost);它拋出一個異常連接:

org.apache.http.conn.HttpHostConnectException: Connection to http://127.0.0.1 refused 

我還加<uses-permission android:name="android.permission.INTERNET" />我AndroidManifest。 xml文件。

當我直接從瀏覽器測試我的php文件時,它工作正常。有什麼建議麼?

回答

6

從模擬器,金正日要訪問您的物理計算機,則必須使用下面的IP地址:

10.0.2.2 

您使用的一個,127.0.0.1,指向其內部執行代碼的機器 - - 即模擬器本身。
由於您的Android模擬器上沒有運行HTTP服務器,因此您的應用程序無法連接到它 - 這解釋了您收到的錯誤消息。


欲瞭解更多信息,請閱讀本手冊的以下部分:Network Address Space

+0

Jinx - 但你的答案更好。 – Nick

+0

嗨,謝謝。現在我正面臨着java.net.SocketException:從相同的方法超時的操作HttpResponse response = httpclient.execute(httppost);因爲我也設置超時限制public static final int HTTP_TIMEOUT = 90 * 1000; mHttpClient = new DefaultHttpClient(); final HttpParams params = mHttpClient.getParams(); HttpConnectionParams.setConnectionTimeout(params,HTTP_TIMEOUT); HttpConnectionParams.setSoTimeout(params,HTTP_TIMEOUT); ConnManagerParams.setTimeout(params,HTTP_TIMEOUT); – aftab

+0

我使用三星Galaxy GT 190 ....我測試我的上面的代碼 – aftab