2012-02-16 2 views
0

Я искал SO за последние несколько дней и нашел много вопросов о моей проблеме, но не собирался ее решать. Я пытаюсь сделать приложение для Android, которое отправляет 4 (может быть, 5) фрагментов данных в php-скрипт на моем веб-сервере. Я считаю, что этот код делает это:Как просмотреть/использовать данные, отправленные http POST?

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 

      } 

Мой вопрос в том, что: Хов делает отправку этих данных? Я думал, что это было бы в этом формате 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); 
    ?> 

Я пробовал много различных способов, как $ имя = file_get_contents ('PHP:// input '), чтобы попытаться посмотреть, что получилось, но не повезло.

Я новичок в android и php, поэтому я предполагаю, что у меня что-то совершенно очевидно, так как все остальные Q/A на SO, похоже, пропускают «как извлекать и использовать отправленные данные». Все, что мне нужно, это PHP-скрипт, чтобы захватить 4 переменные и записать в них новый файл, как указано выше.

Я также хотел бы знать, как получить ответ обратно в приложение, просто сказав, что данные получены. Я предполагаю, что обрабатывается переменной «ответ», но я пока не могу ее проверить.

Может кто-нибудь указать мне в правильном направлении? Спасибо

ответ

3

Данные отправляются методом POST, а не GET. Таким образом, все данные находятся в $_POST.

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

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

Спасибо. Я использовал $ _POST вместо этого, и он работает с «эхом», но по какой-то причине он не будет создавать новый файл с именем newfile.php. Тем не менее, у меня есть другие php-файлы в том же каталоге, используя «тот же» код, и они будут счастливо создавать файл, если он не существует. Если файл существует и доступен для записи, он работает, но в противном случае возвращает ошибку. Есть идеи для этого? – lifeIsGood

+0

У вас есть разрешение на запись в эту папку? _отвергает ошибку_, какая ошибка? –

+0

Спасибо. Сделав разрешения для всей папки «writeable», она теперь работает. Странно, хотя, как и прежде, этого не было, еще один php-скрипт смог открыть и создать файл, если он не существует. – lifeIsGood

Смежные вопросы