2016-03-15 14 views
10

Qualcuno può spiegare come aggiungere l'intestazione di autorizzazione all'interno di Guzzle? Posso vedere il codice qui sotto lavori per aggiungere il nome utente password & ma nel mio caso voglio solo aggiungere l'intestazione di autorizzazione in séGuzzle HTTP - aggiungi l'intestazione di autorizzazione direttamente nella richiesta

$client->request('GET', '/get', ['auth' => ['username', 'password'] 

L'intestazione di base Autorizzazione voglio aggiungere alla mia richiesta GET: -

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI= 

risposta

5

Dall'aspetto delle cose, si sta tentando di utilizzare una chiave API. Per ottenere l'effetto desiderato, è sufficiente passare null come nome utente, come di seguito.

$client->request(
    $method, 
    $url, 
    [ 
     'auth' = [ 
      null, 
      $api_key 
     ], 
    ] 
); 
10

Non so come ho perso la lettura che stavi cercando per l'intestazione di base di autenticazione, ma comunque spero che questo aiuta un po '. Se stai solo cercando di aggiungere l'intestazione Authorization, dovrebbe essere abbastanza facile.

// Set various headers on a request 
$client->request('GET', '/get', [ 
'headers' => [ 
    'Authorization'  => 'PUT WHATEVER YOU WANT HERE' 
    ] 
]); 

ho costruire la mia richiesta in Guzzle pezzo per pezzo in modo da uso il seguente:

$client = new GuzzleHttp\Client(); 
$request = $client->createRequest('GET', '/get'); 
$request->addHeader('X-Authorization', 'OAuth realm=<OAUTH STUFF HERE>'); 
$resp = $client->send($request); 

Speranza che aiuta. Inoltre, assicurati di includere la versione delle Librerie che stai utilizzando in futuro poiché la sintassi cambia a seconda della tua versione.

-1
use GuzzleHttp\Client; 

...

$client = new Client(['auth' => [$username, $password]]); 
$res = $client->request('GET', 'url', ['query' => ['param1'=>$p1, 'param2'=>'sometext']]); 
$res->getStatusCode(); 
$response = $res->getBody(); 

Questo crea un client autorizzato e invia una richiesta di andare d'accordo con params desiderati

6

sto usando Guzzle 6. Se si desidera utilizzare l'Auth di base Schema:

$client = new Client(); 
$credentials = base64_encode('username:password'); 
$response = $client->get('url', 
     [ 
      'headers' => [ 
       'Authorization' => 'Basic ' . $credentials, 
      ], 
     ]); 
Problemi correlati