以下は私が使用しているコードです。スリムフレームワーク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);
});
私はこのRESTサービスをテストするためにgoogle chromeのpostmanを使用しています。 GETリクエストとともにカスタムヘッダー "Authorization"を渡しています。 ただし、このプログラムはカスタムヘッダーを認識しません。
コードブロック
$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