如何查看/使用http POST发送的数据?

时间:2012-02-16 19:52:31

标签: php android

过去几天我一直在搜索SO,并且发现了很多关于我的问题的Q / A,但还没有解决它。我正在尝试制作一个Android应用程序,将4个(可能是5个)数据发送到我的网络服务器上的PHP脚本。我相信这段代码可以做到:

 HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://www.mydomain.com/myscript.php");

            try {
                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
                nameValuePairs.add(new BasicNameValuePair("name", "name"));
                nameValuePairs.add(new BasicNameValuePair("var1", "var1"));
                nameValuePairs.add(new BasicNameValuePair("var2", "var2"));
                nameValuePairs.add(new BasicNameValuePair("var3", "var3"));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);

            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block

            } catch (IOException e) {
                // TODO Auto-generated catch block

            }

我的问题是这样的:Hows会发送这些数据吗?我以为它会采用这种格式 http://www.mydomain.com/myscript.php?name=name&var1=var1&var2=var2&var3=var3

所以我认为这个myscript.php会起作用:

    <?php
    $name = $_GET['name'];

    $filename = "newfile.php";
    $newfile = fopen($filename, 'w+');
    fwrite($newfile, $name);
    fclose($newfile);
    ?>

我尝试了很多种方式,比如$ name = file_get_contents('php:// input')来试试看看收到了什么,但没有运气。

我是android和php的新手所以我认为我遗漏了一些非常明显的东西,因为SO上的所有其他Q / A似乎都跳过了“如何检索和使用正在发送的数据”。我只需要php脚本就可以获取4个变量并将上面的新文件写入其中。

我还想知道如何回复应用程序只是简单地说已收到数据。我认为这是由变量'response'处理的,但我还无法测试。

有人能指出我正确的方向吗? 感谢

1 个答案:

答案 0 :(得分:3)

数据通过POST方法发送,而不是GET。因此,所有数据都在 $_POST

<?php
  $name = $_POST['name'];

  $filename = "newfile.php";
  $newfile = fopen($filename, 'w+');
  fwrite($newfile, $name);
  fclose($newfile);
?>