我想从 Android 应用程序调用服务器上的特定 php 函数并发送一些参数。到目前为止,我已经实现了可以使用 HttpClient 打开 php 文件并将数据传输到 Json 并在我的应用程序中显示出来。所以,现在我希望能够调用特定的函数并向它发送参数,我该怎么做呢?谢谢。
问问题
10825 次
3 回答
4
这是我为使用 JSON 注册新用户名而编写的一段代码:
public static boolean register(Context myContext, String name, String pwd) {
byte[] data;
HttpPost httppost;
StringBuffer buffer;
HttpResponse response;
HttpClient httpclient;
InputStream inputStream;
List<NameValuePair> nameValuePairs;
try {
httpclient = new DefaultHttpClient();
httppost = new HttpPost(
"http://X.X.X.X/register.php");
// Add your data
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("User", name.trim()));
nameValuePairs.add(new BasicNameValuePair("Password", pwd.trim()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
response = httpclient.execute(httppost);
inputStream = response.getEntity().getContent();
data = new byte[256];
buffer = new StringBuffer();
int len = 0;
while (-1 != (len = inputStream.read(data))) {
buffer.append(new String(data, 0, len));
}
inputStream.close();
}
catch (Exception e) {
Toast.makeText(myContext, "error" + e.toString(), Toast.LENGTH_LONG)
.show();
return false;
}
if (buffer.charAt(0) == 'Y') {
return true;
} else {
return false;
}
}
如果您注意到:
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("User", name.trim()));
nameValuePairs.add(new BasicNameValuePair("Password", pwd.trim()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
在该部分中,您可以发送参数。
该方法只是将用户和密码发送到 register.php。如果 User 已经被占用,则返回“N”;否则创建用户并返回“Y”。
在服务器端,您将它们视为 POST 信息,因此:
$user = $_POST['User'];
它应该适合你的情况:)
干杯!
于 2012-04-25T09:55:49.903 回答
1
将这些特定的 php 函数与您所需的参数一起呈现或包装在 Web 服务中,并调用该 Web 服务,包括来自您的 android 的输入参数以完成工作。
于 2012-04-25T09:23:51.410 回答
1
您需要使用 WebServices 来完成这项工作。 http://www.php.net/manual/en/book.soap.php
于 2012-04-25T09:25:05.367 回答