我正在使用Symfony2编写功能测试。
我有一个控制器调用了一个getImage()
函数,该函数将图像文件流式传输,如下所示:
public function getImage($filePath)
$response = new StreamedResponse();
$response->headers->set('Content-Type', 'image/png');
$response->setCallback(function () use ($filePath) {
$bytes = @readfile(filePath);
if ($bytes === false || $bytes <= 0)
throw new NotFoundHttpException();
});
return $response;
}
在功能测试中,我尝试使用Symfony测试客户端请求内容,如下所示:
$client = static::createClient();
$client->request('GET', $url);
$content = $client->getResponse()->getContent();
问题在于$content
为空,我猜测这是因为响应是在客户端接收到HTTP头之后立即生成的,而不等待数据流传递。
是否有一种方法可以在仍然使用$client->request()
(或甚至其他一些函数)向服务器发送请求的情况下捕获流式响应的内容?