2016-03-15 112 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, 
      ], 
     ]);