web-dev-qa-db-ja.com

Guzzle HTTP-Authorizationヘッダーをリクエストに直接追加します

誰でもGuzzle内に認証ヘッダーを追加する方法を説明できますか?以下のコードはユーザー名とパスワードを追加するために機能しますが、私のインスタンスではAuthorizationヘッダー自体を追加したいだけです

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

GETリクエストに追加したい基本認証ヘッダー:-

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI=
23
Zabs

物事の外観から、APIキーを使用しようとしています。目的の効果を得るには、次のように、ユーザー名としてnullを渡すだけです。

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

Basic authヘッダーを探していたことを読んだことをどのように見逃したかわかりませんが、それでもこれがいくらか役立つことを願っています。 Authorizationヘッダーを追加するだけの場合、それは非常に簡単です。

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

Guzzleでリクエストを1つずつ作成するため、以下を使用します。

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

お役に立てば幸いです。また、バージョンに応じて構文が変更されるため、将来使用するライブラリのバージョンを必ず含めてください。

23
Matt D.

Guzzle 6を使用しています。基本認証スキームを使用する場合:

$client = new Client();
$credentials = base64_encode('username:password');
$response = $client->get('url',
        [
            'headers' => [
                'Authorization' => 'Basic ' . $credentials,
            ],
        ]);
18
Agu Dondo
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要求が送信されます

0
Grigoreas P.