Php $response->;getBody()->;getContents()返回空字符串
我的代码如下:Php $response->;getBody()->;getContents()返回空字符串,php,response,psr-7,Php,Response,Psr 7,我的代码如下: <?php use Zend\Diactoros\Response; $response = new Response('This is the response content'); echo $response->getBody()->getContents(); echo $response->getBody(); 我发现了问题,那是我的错 实际上,Response _构造函数将StreamInterface作为第一个参数,而不是字符串 St
<?php
use Zend\Diactoros\Response;
$response = new Response('This is the response content');
echo $response->getBody()->getContents();
echo $response->getBody();
我发现了问题,那是我的错 实际上,Response _构造函数将StreamInterface作为第一个参数,而不是字符串 StreamInterface实现是您必须编写正文的地方,换句话说,您不会得到响应 以下是一个好方法:
$stream = new Stream('php://temp', 'rw');
$stream->write('This is a response');
$response = (new Response($stream));
echo $response->getBody();
我发现了问题,那是我的错 实际上,Response _构造函数将StreamInterface作为第一个参数,而不是字符串 StreamInterface实现是您必须编写正文的地方,换句话说,您不会得到响应 以下是一个好方法:
$stream = new Stream('php://temp', 'rw');
$stream->write('This is a response');
$response = (new Response($stream));
echo $response->getBody();
为什么不使用
Zend\Http\Response
?'因为我根本没有使用Zend Framework,它只是Zend Diactoros,Zend Framework PSR-7实现。Ok。您的第二个解决方案是正确的,但当您将一些字符串放入响应体时,它的工作方式类似于echo
,因此您不需要在文件末尾使用echo
。我发现了问题,这是我的错。实际上,Response _构造函数将StreamInterface作为第一个参数,而不是字符串。StreamInterface实现是您必须编写正文的地方。另一方面,您没有得到响应。为什么不使用Zend\Http\response
?因为我根本没有使用Zend Framework,它只是Zend Diactoros,Zend Framework PSR-7实现。好的。您的第二个解决方案是正确的,但当您将一些字符串放入响应体时,它的工作方式类似于echo
,因此您不需要在文件末尾使用echo
。我发现了问题,这是我的错。实际上,Response _构造函数将StreamInterface作为第一个参数,而不是字符串。StreamInterface实现是您必须编写正文的地方。另一方面,您没有得到响应。$response=newresponse()代码>$response->getBody()->write(“这是一个响应”)代码>echo$response->getBody()代码>它是相同的。$response=newresponse()代码>$response->getBody()->write(“这是一个响应”)代码>echo$response->getBody()代码>它是相同的。