slim php (объяснение документации по телу запроса)

Я впервые работаю с Slim PHP и пытаюсь понять одну из концепций. В тонкой документации PHP говорится:

Тело запроса

Используйте метод getBody() объекта запроса, чтобы получить необработанное тело HTTP-запроса, отправленное HTTP-клиентом. Это особенно полезно для приложений Slim, которые используют запросы JSON или XML.

<?php
$request = $app->request();
$body = $request->getBody();

Мой вопрос: что такое «необработанное тело HTTP-запроса»? Это просто строка всего HTML в теле страницы? В каком формате он хранится? Как будет выглядеть echo $body? Если я сделаю var_dump($body), я получу string(0)"". Как мне это использовать?


person ewizard    schedule 12.07.2013    source источник
comment
Это тело ЗАПРОСА, а не ответ, поэтому обычно в нем нет HTML. Получите FireBug и поиграйтесь с вкладкой Network там   -  person astax    schedule 12.07.2013
comment
@astax у меня уже есть firebug ... я перешел на вкладку NET - я вижу только запрос GET ... когда я нажимаю стрелку, чтобы просмотреть его, я вижу вкладки headers, response, cache, HTML ... что мне искать? Для чего в любом случае подходит тело запроса?   -  person ewizard    schedule 12.07.2013
comment
Это правильное место для поиска, но запросы GET не имеют тела, поскольку все параметры находятся в URL-адресе. Попробуйте отправить любую форму с помощью POST, и вы увидите данные на вкладке «Сообщение».   -  person astax    schedule 12.07.2013
comment
@astax круто ... так что вы говорите, что это способ доступа к данным формы из запроса POST (например)?   -  person ewizard    schedule 12.07.2013


Ответы (2)


Я просто сделаю это ответом, а не комментарием...

Необработанные данные запроса — это то, что отправляется из браузера в виде тела запроса POST. http://en.wikipedia.org/wiki/POST_%28HTTP%29#Use_for_submitting_web_forms

Технически его можно использовать для чтения данных из обычных html-форм, но это не имеет особого смысла, так как PHP делает это достаточно хорошо и помещает все в $_POST.

Вам может понадобиться прочитать необработанные данные, если у вас есть какой-то javascript, который отправляет данные XML или JSON, которые изначально не принимаются PHP.

person astax    schedule 12.07.2013
comment
ах, понятно... Я также использую backbone.js - я думаю, что в конечном итоге данные JSON будут отправляться на сервер. Например... Если у меня есть пользовательский объект в магистрали... и мне нужно получить имя пользователя, пароль, адрес электронной почты и т. д., я бы использовал getBody() из slim php - сохранил его как массив - а затем ссылался на него как $body[username]? - person ewizard; 12.07.2013
comment
Поскольку данные отправляются из Backbone в формате JSON, я считаю, что вам нужно сначала преобразовать их следующим образом: $data = json_decode($request->getBody(), true); - person Ingro; 12.07.2013