суббота, 1 февраля 2014 г.

Spark: POST запросы

Если необходимо передать на веб-сервер большой объем данных, например, текст сообщения или файл, используют POST-запрос. В этом типе запроса параметры помещаются в тело HTTP-запроса, а размер передаваемых данных в байтах указывается в заголовке Content-Length:
POST /enter HTTP/1.1
<Различные заголовки>
Content-Length: 27
<Различные заголовки>

login=admin&password=qwerty
Таким образом, в URL передаваемые параметры не видны. Простым способом сформировать POST-запрос не получится, они в основном генерируются с помощью HTML-форм. Что же касается PHP, то для POST-параметров выделен глобальный массив $_POST, доступ к которому аналогичен массиву $_GET.

То есть если у нас есть файл с таким кодом:
<html>
   <head><title>Fruit Picker</title></head>
   <body>
      <form action="/favorite_fruit" method="POST">
   <p>What is your favorite fruit?</p>
   <#list fruits as fruit>
      <p>
        <input type="radio" name="fruit" value="${fruit}">${fruit}</input>
      </p>
   </#list>
<input type="submit" value="Submit"/>
      </form>
   </body>
</html>
Обработчик POST запроса будет таким:
Spark.post(new Route("/favorite_fruit") {
            public Object handle(final Request request, final Response response) {
                final String fruit = request.queryParams("fruit");
                if (fruit == null) {
                    return "Why don't you pick one?";
                }
                else {
                    return "Your favorite fruit is " + fruit;
                }
            }
        });
В итоге мы передаем параметр "fruit" на страницу "favorite_fruit".

Комментариев нет:

Отправить комментарий