Guzzle HTTP - 将授权标头直接添加到请求中

2022-08-30 13:53:49

任何人都可以解释如何在Guzzle中添加授权标头吗?我可以看到下面的代码适用于添加用户名和密码,但在我的实例中,我只想添加授权标头本身

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

我想添加到我的GET请求的基本授权标头:-

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI=

答案 1

我不知道我是如何错过你正在寻找Basic auth标头的阅读的,但仍然希望这有所帮助。如果您只是想添加授权标头,那应该很容易。

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

希望有所帮助。此外,请确保包含将来使用的库版本,因为语法会根据您的版本进行更改。


答案 2

我正在使用Guzzle 6。如果要使用基本身份验证方案:

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

推荐