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