$ response-> getBody() - > getContents()返回空字符串

时间:2017-07-28 23:00:32

标签: php response psr-7

我有以下代码:

<?php

use Zend\Diactoros\Response;

$response = new Response('This is the response content');

echo $response->getBody()->getContents();
echo $response->getBody();

我在构造函数中直接传递了主体。

我正在尝试获取此响应的主体,仅此而已,但是当我调用 getBody() getBody() - &gt; getContents()时/ strong>它给我一个空字符串。

我尝试了另一种有效的替代方案:

<?php

use Zend\Diactoros\Response;

$response = new Response;

$response->getBody()->write('This is the response content');

echo $response->getBody()->getContents();
echo $response->getBody();

并输出:

  

这是响应内容这是响应内容

为什么第一个和简短的表单不起作用?

1 个答案:

答案 0 :(得分:0)

我发现了问题,这是我的错。

实际上,Response __constructor获取StreamInterface作为第一个参数,而不是字符串。

StreamInterface实现是你必须写你的身体的地方,否则,你没有得到回应。

这是一个好方法:

$stream = new Stream('php://temp', 'rw');

$stream->write('This is a response');

$response = (new Response($stream));

echo $response->getBody();