HttpPost没有正确发布

时间:2012-03-30 17:40:43

标签: php android http-post

我的HttpPost代码发布到我的数据库。但它会将空白值发布到其中。我是Android的整个部分的新手,所以我确信这是一个非常愚蠢的错误,但希望有人可以帮助我。

Android代码:

String name = "test";
                    String _score = String.valueOf(score);
                    String _time = String.valueOf(seconds);

                    try {
                        final HttpClient client = new DefaultHttpClient();
                        final HttpPost post = new HttpPost(
                                "http://www.laytproducts.com/plantzsubmithighscore.php");

                        final List pair = new ArrayList(3);
                        pair.add(new BasicNameValuePair("name", name));
                        pair.add(new BasicNameValuePair("score", _score));
                        pair.add(new BasicNameValuePair("time", _time));

                        post.setEntity(new UrlEncodedFormEntity(pair));

                        HttpResponse httpResponse = client.execute(post);
                        HttpEntity entity = httpResponse.getEntity();
                        InputStream is = entity.getContent();

                        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                        StringBuilder sb = new StringBuilder();
                        String line = null;
                        while((line=reader.readLine())!=null){
                            sb.append(line+"\n");
                        }
                        is.close();
                        String result = sb.toString();
                        Log.i("Plantz","FillBucket Highscore result:\n"+result);
                    } catch (Exception e) {
                        Log.e("Plantz", "Error in http connection: "+e.toString());
                    }

腓:

<?php
  $con = mysql_connect("localhost","MY_USER","MY_PASS");
  $name = $_GET["name"];
  $score = $_GET["score"];
  $time = $_GET["time"];
  if(!$con){
    echo("COULDN'T CONNECT! " . mysql_error());
    die("COULDN'T CONNECT! " . mysql_error());
  }
  mysql_select_db("laytprod_plantz",$con);

  mysql_query("INSERT INTO bucket_highscore (Name, Score, Time) VALUES ('$name','$score','$time')");

  mysql_close();
?>

1 个答案:

答案 0 :(得分:0)

在您的Android代码中,您通过HTTP POST将查询作为邮件正文的一部分发送。在PHP代码中,您尝试从$ _GET中读取值。 PHP代码应该使用$ _POST,或者更好的是$ _REQUEST,以便读取通过HTTP POST获得的值。