Luk*_*uke 11 functional-testing symfony
我有一个用Symfony 2编写的HTTP API,我正在为它编写一些功能测试.
我注意到当我尝试发送Authorization标题时,在我记录收到的标题时,控制器中没有收到它.
在测试控制器中:
$client = self::createClient();
$client->insulate();
$headers = array(
'Authorization' => "Bearer {$accessToken}",
'CONTENT_TYPE' => 'application/json',
);
$client->request('DELETE', "/auth", array(), array(), $headers );
Run Code Online (Sandbox Code Playgroud)
在测试的控制器中:
print_r( $request->headers );
Run Code Online (Sandbox Code Playgroud)
输出:
Symfony\Component\HttpFoundation\HeaderBag Object
(
[headers:protected] => Array
(
[host] => Array
(
[0] => localhost
)
[user-agent] => Array
(
[0] => Symfony2 BrowserKit
)
[accept] => Array
(
[0] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
)
[accept-language] => Array
(
[0] => en-us,en;q=0.5
)
[accept-charset] => Array
(
[0] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
)
[content-type] => Array
(
[0] => application/json
)
[x-php-ob-level] => Array
(
[0] => 0
)
)
[cacheControl:protected] => Array
(
)
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能传入Authorization标题?
Luk*_*uke 21
似乎对于Symfony 2,您需要使用$_SERVER文档[1] 中概述的标题.
从文档中不是很清楚,但在我的情况下,我必须做以下事情:
$headers = array(
'HTTP_AUTHORIZATION' => "Bearer {$accessToken}",
'CONTENT_TYPE' => 'application/json',
);
$client->request('DELETE', "/auth", array(), array(), $headers );
Run Code Online (Sandbox Code Playgroud)
注意问题中使用的HTTP_AUTHORIZATIONvs Authorization头.这为我解决了这个问题.
[1] http://www.php.net/manual/en/reserved.variables.server.php
| 归档时间: |
|
| 查看次数: |
4964 次 |
| 最近记录: |