2016-03-15 14 views
10

Kann jemand erklären, wie man den Authorization Header in Guzzle hinzufügt? Ich kann den Code unten Werke sehen Sie den Benutzernamen & Passwort für das Hinzufügen, aber in meinem Fall möchte ich nur den Authorization-Header selbstGuzzle HTTP - Autorisierungsheader direkt in Anfrage hinzufügen

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

Die Basic Authorization Header ich meine GET-Anfrage hinzufügen möchten hinzufügen: -

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI= 

Antwort

5

Aus der Sicht der Dinge versuchen Sie, einen API-Schlüssel zu verwenden. Um Ihren gewünschten Effekt zu erhalten, übergeben Sie einfach null als Benutzername, wie unten.

10

Ich weiß nicht, wie ich das Lesen verpasst habe, dass Sie nach dem Basic-Auth-Header gesucht haben, hoffe aber trotzdem, dass dies etwas hilft. Wenn Sie nur den Authorization-Header hinzufügen möchten, sollte das ziemlich einfach sein.

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

Ich baue meine Anfrage in Guzzle Stück für Stück nach oben so verwende ich folgendes:

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

Hoffnung, das hilft. Stellen Sie außerdem sicher, dass Sie die Version der Bibliotheken, die Sie in Zukunft verwenden, als Syntaxänderungen abhängig von Ihrer Version verwenden.

-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(); 

Dies entspricht einem autorisierten Client erstellt und sendet eine GET-Anforderung zusammen mit gewünschten params

6

Ich verwende Guzzle 6. Wenn Sie die Grund Auth verwenden möchten Schema:

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