4

我想从 Android 应用程序调用服务器上的特定 php 函数并发送一些参数。到目前为止,我已经实现了可以使用 HttpClient 打开 php 文件并将数据传输到 Json 并在我的应用程序中显示出来。所以,现在我希望能够调用特定的函数并向它发送参数,我该怎么做呢?谢谢。

4

3 回答 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 回答