Folgendes ist der Code, den ich verwende.schlanke Rahmen PSR nicht benutzerdefinierte Header erkennen
<?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);
});
Ich benutze Postman in Google Chrome, um diesen REST-Dienst zu testen. Ich übergebe einen benutzerdefinierten Header "Authorization" zusammen mit der GET-Anfrage. jedoch erkennt dieses Programm keine benutzerdefinierten Header.
Der Codeblock
$headers = $request->getHeaders();
foreach ($headers as $name => $values) {
$name . ": " . implode(", ", $values);
}
gibt nur den Header "HTTP_ACCEPT_LANGUAGE".
Bitte helfen Sie mir herauszufinden, was hier schief gelaufen ist.
Was sollte Ihr letzter Codeblock tun? Es verkettet einfach Zeichenfolgen, aber das Ergebnis wird in keiner Weise verwendet, es wird weder zurückgegeben noch wird es irgendwo wiederholt. Wenn Sie sich 'unbekannte Variablen' oder Arrays ansehen wollen, versuchen Sie [var_dump()] (http://php.net/manual/en/function.var-dump.php) und veröffentlichen Sie die Ausgabe. (Sie sollten die Ausgabe von 'var_dump ($ request-> getHeaders()));') – tillz