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=
14
demandé sur Zabs 2016-03-15 15:48:03

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
        ],
    ]
);
6
répondu Shaun Bramley 2016-03-15 13:27:11

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.

13
répondu Matt D. 2016-03-15 15:08:08

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,
            ],
        ]);
8
répondu Agu Dondo 2017-04-05 00:55:52
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

-1
répondu GrigoreasP 2016-10-28 09:33:10