HttpPost неправильно публикуется - PullRequest
0 голосов
/ 30 марта 2012

Мой код 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:

<?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 голосов
/ 30 марта 2012

В вашем коде Android вы отправляете запрос как часть тела сообщения через HTTP POST. В коде PHP вы пытаетесь прочитать значения из $ _GET. PHP-код должен использовать $ _POST или, что еще лучше, $ _REQUEST, чтобы считывать значения, полученные через HTTP POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...