Symfony2-如何在测试RESTAPI时获取自定义头

Symfony2-如何在测试RESTAPI时获取自定义头,rest,symfony,testing,http-headers,Rest,Symfony,Testing,Http Headers,我正在测试REST-API。在我的DefaultTestController $client = static::createClient(); $crawler = $client->request( 'GET', "someurl", [], [], [ 'HTTP_X_AUTH_TOKEN' => $clientAuthToken, ] ); 在我的

我正在测试
REST-API
。在我的
DefaultTestController

$client = static::createClient();
$crawler = $client->request(
        'GET',
        "someurl",
        [],
        [],
        [
            'HTTP_X_AUTH_TOKEN' => $clientAuthToken,
        ]
    );
在我的
REST控制器中
我正在等待获取
x-auth-token
标题

$request = Request::createFromGlobals();
$authToken = $request->headers->get('x-auth-token'); 

但我没有。我做错了什么?

在您的REST-CONTROLLER中,您可以访问当前请求,并将其传递给方法,如下所示:

public function someAction(Request $request)
{
  $authToken = $request->headers->get('x-auth-token'); 
}
而不是创建一个新的空的


希望这有帮助

我忘了说,我正在使用FOSRestBundle。当我对本机应用程序(而不是REST)执行相同的操作时,一切都正常。但是当我通过FOSRestBundle测试restapi请求时,我丢失了我的自定义头。是的,你完全正确!我不应该使用CreateFromGlobal()来获取请求对象,但应该使用from action one。发生这种情况是因为该控制器的非web调用,例如测试,就像我的例子一样。