Android-приложение отправляет данные в PHP-скрипт - ожидание не выполнено - PullRequest
2 голосов
/ 23 декабря 2010

Я пытаюсь разработать приложение, которое должно отправлять данные в базу данных MySql. Для этого я создаю httppost следующим образом

public void postData() {    
     try {
       // Create a new HttpClient and Post Header 
      HttpClient httpclient = new DefaultHttpClient();  
      HttpPost httppost = new HttpPost("myscript.php");  
   // Add your data 
         List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
         nameValuePairs.add(new BasicNameValuePair("name", "Noon"));  
         nameValuePairs.add(new BasicNameValuePair("level", "0"));  
         httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));  

         // Execute HTTP Post Request  
         HttpResponse response = httpclient.execute(httppost);           
         String text = EntityUtils.toString(response.getEntity());          
            Log.i("","response = "+text); 
     } catch (ClientProtocolException e) {  
         // TODO Auto-generated catch block 
      e.printStackTrace();
     } catch (IOException e) {  
         // TODO Auto-generated catch block  
      e.printStackTrace();
     }  
 }   

На моем сервере установлен следующий скрипт:

<?php
$link = mysql_connect("localhost", "user", "password")
    or die("Impossible de se connecter : " . mysql_error());
echo 'Connected';

$db_selected = mysql_select_db('db', $link);
if (!$db_selected) {
   die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
mysql_query("INSERT INTO players (name, level) VALUES ('".$_REQUEST['name']."', '".$_REQUEST['level']."')");
mysql_close($link);
?>

Текст строки заполнен ошибкой 417 - ожидание не выполнено.

Я понимаю проблему, но не понимаю, как ее исправить. Буду признателен за помощь в этом вопросе, поскольку я немного застрял.

Ответы [ 4 ]

2 голосов
/ 23 декабря 2010

Вы никогда не вводите URL сервера.Как Android должен знать, что делать с этим

HttpPost httppost = new HttpPost("myscript.php");

Вы также должны лучше отформатировать свой код.

0 голосов
/ 28 марта 2012

Вы должны сделать что-то вроде этого:

HttpPost httppost = new HttpPost("myscript.php");
httppost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false); 
0 голосов
/ 24 декабря 2010

Спасибо за быстрый ответ. Проблема в том, что я вставил правильный URL-адрес в HttpPost, но я не хотел показывать его, поскольку он находится в облаке. Вот почему я получаю ответ от сценария.

0 голосов
/ 24 декабря 2010

Я думаю, что Фальмарри прав.Вы должны поместить полный URL-адрес вашего скрипта в

 HttpPost httppost = new HttpPost("myscript.php");

, вы должны использовать

HttpPost httppost = new HttpPost ("http://abc.com/folder путь вашего скрипта / myscript.php");

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