2013-07-12 41 views
0

我正在第一次使用Slim PHP,并且我正在尝试理解其中一个概念。在纤薄的PHP文件,它规定:slim php(解释“请求体”文档)

请求体

使用request对象的getBody()方法来获取由HTTP客户端发送HTTP请求的原始体。这对于使用JSON或XML请求的Slim应用程序特别有用。

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

我的问题是,什么是 “原始的HTTP请求体”?它只是页面主体中所有HTML的字符串?它以什么格式存储? echo $body是什么样子?如果我做var_dump($body)我得到string(0)""。我如何使用它?

+1

这是一个REQUEST主体,而不是响应,所以通常没有HTML。获取FireBug并使用Network选项卡播放 – astax

+0

@astax我已经有Firebug了...我去了NET选项卡 - 我只看到GET请求...当我单击箭头查看它时,我看到标签'标题,响应,缓存,HTML' ...我应该寻找什么?无论如何,请求主体有什么用处? – ewizard

+0

这是查找的正确位置,但GET请求没有正文,因为所有参数都在URL中。尝试使用POST提交任何表单,您将在“发布”选项卡中看到数据 – astax

回答

1

我只是让一个答案,而不是评论...

原始请求的数据是什么从浏览器提交的POST请求的主体。 http://en.wikipedia.org/wiki/POST_%28HTTP%29#Use_for_submitting_web_forms

从技术上讲,它可以用来从通常的html表格中读取数据,但是这并没有多大意义,因为PHP做得足够好并且把所有东西都放到$ _POST中。

如果您有一些发送XML或JSON数据的JavaScript,您可能需要阅读原始数据,这些数据本来不被PHP接受。

+0

啊我看到了...我也在使用backbone.js - 这是我认为最终会将JSON数据发送到服务器的原因。例如...如果我有一个骨干用户对象...我需要获取用户名,密码,电子邮件等,我会使用瘦身PHP的getBody() - 将其作为数组存储 - 然后那么像'$ body [username]'一样引用它? – ewizard

+0

由于数据是从主干以JSON的形式发送的,我相信你需要先将它转换为这样:'$ data = json_decode($ request-> getBody(),true);' – Ingro