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

Php Guzzle HTTP-将授权头直接添加到请求中,php,rest,http,guzzle,guzzle6,Php,Rest,Http,Guzzle,Guzzle6,有人能解释一下如何在Guzzle中添加授权标题吗?我可以看到下面的代码用于添加用户名和密码,但在我的实例中,我只想添加授权头本身 $client->request('GET', '/get', ['auth' => ['username', 'password'] 要添加到GET请求的基本授权标头:- Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlM

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

$client->request('GET', '/get', ['auth' => ['username', 'password']
要添加到GET请求的基本授权标头:-

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI=

从外观上看,您正在尝试使用API密钥。要获得所需的效果,只需将
null
作为用户名传入,如下所示

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

我不知道我怎么没读到你在寻找基本的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);
$client=new GuzzleHttp\client();
$request=$client->createRequest('GET','/GET');
$request->addHeader('X-Authorization','OAuth realm=');
$resp=$client->send($request);
希望有帮助。另外,请确保包含将来使用的库的版本,因为语法会根据您的版本而变化

use GuzzleHttp\Client;


这将创建一个授权客户端并发送一个get请求以及所需的参数,我正在使用Guzzle 6。如果要使用基本身份验证方案:

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

具有“auth”的变量分配不正确=[
$client = new Client();
$credentials = base64_encode('username:password');
$response = $client->get('url',
        [
            'headers' => [
                'Authorization' => 'Basic ' . $credentials,
            ],
        ]);