从Android发送变量到PHP服务器

时间:2015-09-18 04:33:22

标签: java php android json

我有最难的时间,我想要的是我的Android应用程序将STRING发送到我的服务器,然后我的服务器将根据在PHP中发送的STRING选择一个函数。函数完成后,它将返回一个JSONObject。我不想使用任何Deprecated方法。我正在尝试实现向服务器发送STRING以解析并在PHP中使用适当的函数然后将JSON发送回我的A​​ndroid应用程序。任何人都可以从android端显示一些代码吗?

所以我正在寻找的是,帮助Android代码将STRING发送到服务器,然后从服务器读取响应,这将是一个JSON。

1 个答案:

答案 0 :(得分:1)

对于Android,您可以使用HTTP连接URL。这里提到了一个例子How to add parameters to HttpURLConnection using POST

URL url = new URL("http://yoururl.com");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);

List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", "Chatura"));

OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(params));
writer.flush();
writer.close();
os.close();

conn.connect();

...

private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
    StringBuilder result = new StringBuilder();
    boolean first = true;

    for (NameValuePair pair : params)
    {
        if (first)
            first = false;
        else
            result.append("&");

        result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
    }

    return result.toString();
}

对于PHP,只接受来自Andrid的帖子请求,如下所示

<?php
echo '{ "name" = "Hello ' . htmlspecialchars($_POST["name"]) . '"}';
?>