2012-04-12 31 views
1

我想實現一個通過我的web服務從mysql獲取數據的類。我以前使用過一個http post來從表中獲取信息,但是這次我打算用戶輸入一個字符串到editText中,按搜索和textview來顯示查詢。例如,想象一下,有兩列mysql表:名字和姓氏;我希望能夠通過搜索Firstname(輸入Firstname到EditText中並顯示該人的姓氏)來獲得姓氏。我開發了PHP腳本,但是可以使用基於輸入的HTTP get方法串?怎麼樣?我只看過教程直引導到PHP的鏈接HTTP基於java中的參數獲取方法

+0

你爲什麼不想用post? – 2012-04-12 11:26:37

+0

如果我要編輯表格,我會使用帖子,但我只想根據參數獲取表格的信息。基本EDITTEXT的輸入將進入一個MySQL查詢:SELECT名字從不同人的名字=「字符串輸入到的EditText」 – 2012-04-12 14:45:32

+0

酵母以及可以實現相同的使用HttpPost,它將爲確保提供更安全的選擇。如果你不想去發佈,你仍然可以使用get。我可以發佈一些代碼。 – 2012-04-12 14:48:33

回答

0

這是一個例子,你如何使用它,你可以通過使用POST請求的PHP文件namevaluepairs中做到這一點。

private void sendData(ArrayList<NameValuePair> data) 
{ 
    // 1) Connect via HTTP. 2) Encode data. 3) Send data. 
    try 
    { 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new  
     HttpPost("http://www.blah.com/AddAccelerationData.php"); 
     httppost.setEntity(new UrlEncodedFormEntity(data)); 
     HttpResponse response = httpclient.execute(httppost); 
     Log.i("postData", response.getStatusLine().toString()); 
      //Could do something better with response. 
    } 
    catch(Exception e) 
    { 
     Log.e("log_tag", "Error: "+e.toString()); 
    } 
} 

現在讓我們說你想用這種方法來傳遞信息(即你的參數到PHP文件。

//Add data to be send. 
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
    nameValuePairs.add(new BasicNameValuePair("parameter",editTextValue)); 
    this.sendData(nameValuePairs); 

現在對事物的PHP端你就可以通過獲得這個參數值電話:

//Retrieve the data. 
$parameter = $_POST['parameter']; 
//Now call on your query or function or w/e it is using this parameter. 
0

要使用GET,只需將值編碼到您的網址,如

String url = "http://myserver.net/script.php?first=" + URLEncoder.encode(first) + 
      "&last=" + URLEncoder.encode(last); 

,然後使用HTTPGET對象與你的HttpClient:

HttpClient client = new DefaultHttpClient(); 
HttpResponse response = client.execute(new HttpGet(url)); 

處理響應是否相同,如果你已經張貼。