Guzzle HTTP-ajouter l'en-tête D'autorisation directement dans la requête
quelqu'un Peut-il expliquer comment ajouter l'en-Tête d'Autorisation dans les Bouffer? Je peux voir le code ci-dessous fonctionne pour ajouter le nom d'utilisateur & mot de passe mais dans mon cas je veux juste ajouter l'en-tête D'autorisation elle-même
$client->request('GET', '/get', ['auth' => ['username', 'password']
l'en-tête Basic Authorization que je veux ajouter à ma requête GET: -
Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI=
4 réponses
D'après l'apparence des choses, vous tentez d'utiliser une clé API. Pour obtenir l'effet désiré, passez simplementnull
dans le nom d'utilisateur, comme ci-dessous.
$client->request(
$method,
$url,
[
'auth' = [
null,
$api_key
],
]
);
Je ne sais pas comment j'ai manqué la lecture que vous cherchiez l'en-tête de base d'auth, mais j'espère néanmoins que cela aide un peu. Si vous cherchez juste à ajouter l'en-tête D'autorisation, cela devrait être assez facile.
// Set various headers on a request
$client->request('GET', '/get', [
'headers' => [
'Authorization' => 'PUT WHATEVER YOU WANT HERE'
]
]);
je construis ma demande en Guzzle pièce par pièce donc j'utilise ce qui suit:
$client = new GuzzleHttp\Client();
$request = $client->createRequest('GET', '/get');
$request->addHeader('X-Authorization', 'OAuth realm=<OAUTH STUFF HERE>');
$resp = $client->send($request);
J'espère que ça aidera. Aussi, assurez-vous d'inclure la version des bibliothèques que vous utilisez dans le futur comme des changements de syntaxe en fonction de votre version.
J'utilise Guzzle 6. Si vous souhaitez utiliser l'Authentification Basique Schéma:
$client = new Client();
$credentials = base64_encode('username:password');
$response = $client->get('url',
[
'headers' => [
'Authorization' => 'Basic ' . $credentials,
],
]);
use GuzzleHttp\Client;
...
$client = new Client(['auth' => [$username, $password]]);
$res = $client->request('GET', 'url', ['query' => ['param1'=>$p1, 'param2'=>'sometext']]);
$res->getStatusCode();
$response = $res->getBody();
cela crée un client autorisé et envoie une requête get ainsi que les params désirés