2012-04-12 2 views
1

Я пытаюсь реализовать класс, который получает данные из mysql через мою веб-службу. Я ранее использовал http-сообщение для получения информации из таблицы, но на этот раз я намереваюсь, чтобы пользователь вводил строку в editText, нажимал поиск и текстовое представление для отображения запроса. Например, представьте, что есть два столбца таблицы mysql : Имя и фамилия; Я хотел бы иметь возможность получить фамилию, выполнив поиск в Firstname (ввод первого имени в EditText и отображение фамилии этого человека). Я разработал PHP-скрипт, но можно использовать метод HTTP get на основе ввода строка? как? Я видел только учебники, направляющие прямо на ссылку phpHTTP Получить метод на основе параметров в java

+0

Почему вы не хотите использовать сообщение для этого? –

+0

Я бы использовал пост, если бы мне пришлось редактировать таблицу, но я хочу получить информацию для таблицы на основе этого параметра. в основном входной файл editText будет введен в запрос mysql: SELECT Firstname FROM People WHERE Firstname = «строка, введенная в EditText» –

+0

, и то же самое можно достичь с помощью HttpPost, и это наверняка обеспечит более безопасный вариант. вы все равно можете использовать get, если вы не хотите идти на почту. я мог бы написать код для этого. –

ответ

0

Это пример того, как вы могли это сделать, используя NameValuePairs, который вы можете передать в файл php, используя запрос на отправку.

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, просто закодировать значения в вашем URL, например

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)); 

Обработка ответа является то же самое, как если бы вы разместили ее.

Смежные вопросы