任何人都可以解释如何在Guzzle中添加授权标头吗?我可以看到下面的代码用于添加用户名和&密码,但在我的实例中,我只想添加授权标题本身
$client->request('GET', '/get', ['auth' => ['username', 'password']
我要添加到我的GET请求的基本授权标头: -
Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI=
答案 0 :(得分:22)
我不知道我是如何错过阅读你正在寻找Basic auth标题,但是希望这有点帮助。如果您只是想添加Authorization标头,那应该非常简单。
// Set various headers on a request
$client->request('GET', '/get', [
'headers' => [
'Authorization' => 'PUT WHATEVER YOU WANT HERE'
]
]);
我在Guzzle中逐个建立我的请求,所以我使用以下内容:
$client = new GuzzleHttp\Client();
$request = $client->createRequest('GET', '/get');
$request->addHeader('X-Authorization', 'OAuth realm=<OAUTH STUFF HERE>');
$resp = $client->send($request);
希望有所帮助。此外,请确保包含将来使用的库版本,因为语法会根据您的版本而更改。
答案 1 :(得分:14)
我正在使用Guzzle 6.如果您想使用基本身份验证方案:
$client = new Client();
$credentials = base64_encode('username:password');
$response = $client->get('url',
[
'headers' => [
'Authorization' => 'Basic ' . $credentials,
],
]);
答案 2 :(得分:6)
从外观上看,您正在尝试使用API密钥。要获得所需效果,只需将null
作为用户名传递,如下所示。
$client->request(
$method,
$url,
[
'auth' = [
null,
$api_key
],
]
);
答案 3 :(得分:0)
use GuzzleHttp\Client;
...
$client = new Client(['auth' => [$username, $password]]);
$res = $client->request('GET', 'url', ['query' => ['param1'=>$p1, 'param2'=>'sometext']]);
$res->getStatusCode();
$response = $res->getBody();
这会创建一个授权客户端并发送一个get请求以及所需的params