2016-03-15 151 views
10

任何人都可以解釋如何在Guzzle中添加授權標頭?我可以看到下面的作品的代碼添加用戶名&密碼,但在我的情況下我只想補充Authorization頭本身Guzzle HTTP - 直接將授權標頭添加到請求中

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

基本Authorization頭我想添加到我的GET請求: -

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI= 

回答

5

從外觀看,您正試圖使用​​API​​密鑰。要獲得您想要的效果,只需將null作爲用戶名輸入,如下所示。

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

我不知道我是如何錯過了閱讀,你正在尋找基本身份驗證標題,但仍希望這有所幫助。如果你只是想添加授權標題,那應該很簡單。

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

我建立我在狂飲一塊一塊的要求,所以我使用以下命令:

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

希望有所幫助。此外,請確保包含將來使用的庫的版本,因爲語法會根據您的版本進行更改。

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

這將創建一個授權的客戶端,並與所需的PARAMS

6

我使用狂飲6.如果您想使用基本身份驗證一起發送GET請求計劃:

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