2

我正在尝试实现一个通过我的网络服务从 mysql 获取数据的类。我以前使用http post从表中获取信息,但这次我打算让用户在editText中输入一个字符串,按搜索和textview来显示查询。例如,假设mysql表有两列: 名字和姓氏;我希望能够通过搜索名字来获取姓氏(在 EditText 中输入名字并显示该人的姓氏)。我已经开发了 PHP 脚本,但是否可以根据输入使用 HTTP get 方法细绳?如何?我只看到直接指向 php 链接的教程

4

2 回答 2

1

这是一个示例,您可以如何使用 NameValuePairs 来执行此操作,您可以使用 post 请求将其传递给 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.
于 2012-04-12T16:41:02.310 回答
1

要使用 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));

处理响应就像您发布它一样。

于 2012-04-12T16:45:58.587 回答