我正在为我的Symfony3应用程序编写功能测试,我遇到的问题是我无法接收控制器返回的数据。控制器的每次调用仍然返回301重定向。我注意到,每次调用控制器都会调用带有setTargetUrl方法的RedirectResponse类,该方法负责重定向到适当的控制器。当我使用我的应用程序作为用户时,一切都很好,但爬虫只返回有关重定向的信息。
以下是一个例子:
我的测试方法:
public function testListController()
{
$client = static::createClient();
$crawler = $client->request('GET', '/list');
print_r($client->getResponse());
}
方法返回:
<head>
<meta charset="UTF-8" />
<meta http-equiv="refresh" content="1;url=https://localhost/list/" />
<title>Redirecting to http://localhost/list/</title>
</head>
<body>
Redirecting to <a href="http://localhost/list/">https://localhost/list/</a>.
</body>
为什么我无法访问该页面的正确内容?每个挂钩都被禁用,在访问控制器之前没有任何方法可以调用。
答案 0 :(得分:1)
此行为是由于路径定义末尾的斜杠。所以试试这个:
$crawler = $client->request('GET', '/list/');
而不是:
$crawler = $client->request('GET', '/list');
希望这个帮助