Laravel:使用自定义请求标头测试路由

时间:2014-05-17 18:05:07

标签: php laravel laravel-4

所以问题很简单:

当我使用Laravel进行测试时,如何发送自定义请求标头?

我试图这样做:

$this->call('POST', '/my/route', ['params' => 'array'], [], ['X-Custom' => 'header']);

但是当我在控制器中拨打Request::header('X-Custom')时,我没有得到它。 是的,它可以在Request::server('X-Custom')中找到,但它不是我需要的。

所以我需要在Request::header()中获取它。

PS:Laravel 4

3 个答案:

答案 0 :(得分:12)

您需要正确形成标题,否则将被忽略。试试这个:

this->call('POST', '/my/route', ['params' => 'array'], [], ['HTTP_X-Custom' => 'header']);

查看您的请求时,HTTP_将被删除

答案 1 :(得分:0)

TLDR;使用“HTTP _”

为您的自定义标头添加前缀

如果有人对此为何起作用感兴趣,请阅读此问题:

https://github.com/laravel/framework/issues/1655

答案 2 :(得分:0)

在Laravel> = 5.1中,调用方法基于其定义:

call($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)

在headers数组之前需要一个额外的数组:

this->call('POST', '/my/route', ['params' => 'array'], [], [], ['HTTP_X-Custom' => 'header']);