Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > получить данные из POST


Автор: DsKTY 19.1.2008, 22:25
здравствуйте.  возник такой вопрос, даже не знаю как нормально словами описать.... в общем вот код на php (пример из книжки):

Код

<?php
     
// Read In XML from Raw Post Data.
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
     
// Process XML using DOM PHP extension.
$document = xmldoc($xml);
     
// Read root element <gameinfo>.
$rootElement = $document->root(  );
     
// Read child nodes <username> and <score>.
$childNodes = $rootElement->children(  );
     
$data = "";
     
// Loop through child nodes and place in array.
foreach($childNodes as $childNode){
  // Add data to array;
  $name = $childNode->tagName(  );
  $value = $childNode->get_content(  );
  $data[$name] = $value;
}
     
// Append data to scores.txt ( format: username|score )
$fp = fopen("scores.txt","a+");
$dataString = $data['username'] . "|" . $data['score'] . "\n";
fputs($fp,$dataString,strlen($dataString));
fclose($fp);
     
// Return success code to Flash
echo "<success>1</success>";
?>


собственно интересен не столько сам код, сколько его 4-я строка. что это за HTTP_RAW_POST_DATA и как его можно вытащить из HttpServletRequest?? 
 

Автор: DsKTY 20.1.2008, 00:12
мдя... похоже тему пытались перемещать. нет, я не ошибся - интересует именно Java, просто пример на php только нашёл. 

Автор: Kangaroo 20.1.2008, 00:36
DsKTY, 
а что нужно получиль с формы?
В пример получается XML файл с флеши. А вам какие данные нужно получить?

Если просто переменные, введенные на форме, то request.getParameter(String name);

Автор: DsKTY 20.1.2008, 01:56
почитал вот http://phpclub.ru/detail/article/http_request#part_3 немного про http-запросы. на сколько я понял, этот HTTP_RAW_POST_DATA - это вся куча данных, переменных и их значений, и т.п., которая есть в POST запросе. почит во всех встреченных мню примерах xml передают именно так. полагаю по тому, что эта куча находится в конце запроса, и может содержать любые символы. если заталкивать xml в переменные, то можно получить неприятность - что-то вроде инъекции. 
так вот нужно как-то получить всю эту кучу. в голове рождаются мысли брать весь запрос как строку и искать эту кучу, а потом читать в потоке. но подозреваю, что должно быть более красивое и стандартное решение. 

хотя может я не прав, и все мои домыслы - просто злая шутка моего разума??  smile 

Автор: DsKTY 20.1.2008, 11:43
в общем сделал стянув функцию gerRequestAsString http://www.ibm.com/developerworks/ru/library/x-xformstipjava/index.html. вроде всё работает как и должно. 

всем спасибо за внимание.  smile 

Автор: LSD 20.1.2008, 21:08
Тебе нужно именно в виде строки?

Просто если тебе нужно именно XML парсить, то вызывай http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html#getInputStream(), ты получишь поток который и скормишь парсеру.

Автор: DsKTY 22.1.2008, 14:16
хм, действительно. спасибо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)