gpt4 book ai didi

api - PHPUnit - getallheaders 不起作用

转载 作者:行者123 更新时间:2023-12-04 08:20:37 25 4
gpt4 key购买 nike

我正在测试我的代码,但标题有一些问题。在我使用的每个 api 中

$headers = getallheaders();

得到它,当我使用应用程序或 crhome postman 扩展进行测试时,这工作正常。
当我启动我的测试时,像这样
 $client = $this->createClient();
$client->request('GET', '/api/shotcard',
['qrcode'=>'D0m1c173'], [],
['HTTP_API_TOKEN' => 'abc123']
);

$this->assertEquals(200, $client->getResponse()->getStatusCode());

我尝试使用该 qrcode 与具有该测试 token (不是我将在应用程序中使用的 token )的用户拍摄一张卡片,我在这里看到这样的调用: https://stackoverflow.com/a/11681422/5475228 .
测试以这种方式失败:

PHP Fatal error: Call to undefined function AppBackendBundle\Controller\getallheaders() in /var/www/pitstop/src/AppBackendBundle/Controller/ApiController.php on line 42

最佳答案

来自 this文章:

If you use Nginx, PHP-FPM or any other FastCGI method of running PHP you’ve probably noticed that the function getallheaders() does not exist. There are many creative workarounds in the wild, but PHP offers two very nice features to ease your pain.



来自用户在 getallheaders() 发表的评论 joyview at gmail dot com PHP 手册中的函数
if (!function_exists('getallheaders')) {
function getallheaders() {
$headers = [];
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
}

关于api - PHPUnit - getallheaders 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41427359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com