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

Zab*_*abs 27 php rest http guzzle guzzle6

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

$client->request('GET', '/get', ['auth' => ['username', 'password']
Run Code Online (Sandbox Code Playgroud)

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

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI=
Run Code Online (Sandbox Code Playgroud)

Mat*_* D. 25

我不知道我是如何错过阅读你正在寻找Basic auth标题,但仍然希望这有点帮助.如果您只是想添加Authorization标头,那应该非常简单.

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

我在Guzzle中逐个建立我的请求,所以我使用以下内容:

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

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


Agu*_*ndo 19

我正在使用Guzzle 6.如果你想使用Basic Auth Scheme:

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


Sha*_*ley 8

从外观上看,您正在尝试使用API​​密钥.要获得所需效果,只需null输入用户名,如下所示.

$client->request(
    $method,
    $url,
    [
        'auth' = [
            null,
            $api_key
        ],
    ]
);
Run Code Online (Sandbox Code Playgroud)