2016-07-23 35 views
2

我正在測試REST-API。在我DefaultTestControllerSymfony2 - 如何在測試REST API時獲取自定義標頭

$client = static::createClient(); 
$crawler = $client->request(
     'GET', 
     "someurl", 
     [], 
     [], 
     [ 
      'HTTP_X_AUTH_TOKEN' => $clientAuthToken, 
     ] 
    ); 

在我REST-controller我等着拿到x-auth-token

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

,但我不知道。我做錯了什麼?

+0

我忘了說,我使用的是FOSRestBundle。當我對原生應用程序(而不是REST)執行相同操作時,一切正常。但是當我通過FOSRestBundle測試REST API請求時,我丟失了自定義標題。 –

回答

1

在你的REST控制器,你可以訪問到當前請求將它傳遞給方法如下例子:

public function someAction(Request $request) 
{ 
    $authToken = $request->headers->get('x-auth-token'); 
} 

而不是創建一個新的空單。

希望這個幫助

+1

是的,你是絕對正確的!我不應該使用CreateFromGlobal()來獲取請求對象,但我應該使用一個動作。它發生是因爲這個控制器的非網絡調用,例如測試,就像我的情況一樣。 –