以下是我正在使用的代码。超薄框架PSR无法识别自定义标头
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
$app = new \Slim\App;
function handle_response($output, $response){
if($output['status'] === "failed"){
$response = $response->withStatus(400);
$response->getBody()->write(json_encode($output));
}
else{
$response->getBody()->write(json_encode($output));
}
return $response;
}
/* user profile */
$app->get('/user/profile', function (Request $request, Response $response) {
$headers = $request->getHeaders();
foreach ($headers as $name => $values) {
$name . ": " . implode(", ", $values);
}
if ($request->hasHeader('Authorization')) {
$output['token'] = 'yes';
}
else
$output['token'] = $name;
$output['status'] = "success";
return handle_response($output, $response);
});
我在google chrome中使用邮递员测试此REST服务。 我传递一个自定义标题“Authorization”以及GET请求。然而,这个程序不能识别任何自定义标题。
码块
$headers = $request->getHeaders();
foreach ($headers as $name => $values) {
$name . ": " . implode(", ", $values);
}
只返回标题 “HTTP_ACCEPT_LANGUAGE”。
请帮我弄清楚,这里出了什么问题。
你最后的代码块应该做什么?它只是串联字符串,但结果不会以任何方式使用,它不会返回,也不会在任何地方回显。如果你想看看'未知变量'或数组,请尝试[var_dump()](http://php.net/manual/en/function.var-dump.php)并发布输出。 (你应该发布var_dump($ request-> getHeaders());')的输出 – tillz