2015-06-11 181 views
1

我是一個新手,試圖通過xampp從Android應用程序發送數據到本地主機服務器上設置的MySQL數據庫。該方法應該將名稱,用戶名,密碼,電話號碼和年齡放入NameValuePair類型的數組列表中。從Android應用程序發送數據到MySQL數據庫

@Override 
    protected Void doInBackground(Void... params) { 
      ArrayList<NameValuePair> dataToSend = new ArrayList<>(); 
      dataToSend.add(new BasicNameValuePair("name", user.name)); 
      dataToSend.add(new BasicNameValuePair("age", user.age + "")); 
      dataToSend.add(new BasicNameValuePair("username", user.username)); 
      dataToSend.add(new BasicNameValuePair("password", user.password)); 
      dataToSend.add(new BasicNameValuePair("phoneNumber", user.phoneNumber)); 

     HttpParams httpRequestParams = new BasicHttpParams(); 
     HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT); 
     HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT); 

     HttpClient client = new DefaultHttpClient(httpRequestParams); 

     HttpPost post = new HttpPost("localhost/Register.php"); 

     try{ 
      post.setEntity(new UrlEncodedFormEntity(dataToSend)); 
      client.execute(post); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
     return null; 
    } 

當我運行應用程序時,我收到以下異常:

Target host must not be null, or set in parameters. scheme=null, host=null, path=localhost/Register.php 

我的研究使我相信,有一個與URL字符串有問題,但我不具體是什麼知道問題是。

在此先感謝。

(PS我也知道一個數據庫採用明文存儲密碼的可怕的安全隱患的。只是想學習如何應用程序和數據庫之間的交互。THX)

+1

嘗試設置10.0.2.2這個IP而不是本地主機 –

+0

@SarvagnaMehta這到底是什麼? – Johnny

+0

它將您連接到本地主機,因爲在某些模擬器中localhost不直接工作。 –

回答

0

我的問題只是我使用了錯誤的IP地址。出於某種原因,本地主機不起作用。我想出我的系統的ipv4地址(不是10.0.2.2),並使用它,它的工作。

2

試試這個代碼發佈數據如果本地主機替換不適合你。

HttpParams params = new DefaultHttpParams(); // setup whatever params you what 
    HttpClient client = new DefaultHttpClient(params); 
    HttpPost post = new HttpPost("someurl"); 
    post.setEntity(new UrlEncodedFormEntity()); // with list of key-value pairs 
    client.execute(post, new ResponseHandler(){}); // implement ResponseHandler to handle response correctly. 
相關問題