php 사용법 Guzzle HTTP-인증 헤더를 요청에 직접 추가합니다.




guzzlehttp 사용법 (4)

누구든지 Guzzle 내에서 Authorization Header를 추가하는 방법을 설명 할 수 있습니까? 아래 코드는 사용자 이름과 암호를 추가하는 방법을 보여 주지만 인스턴스에서는 Authorization 헤더 자체를 추가하려고합니다.

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

내 GET 요청에 추가하려는 기본 인증 헤더 : -

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI=

나는 당신이 Basic auth header를 찾고 있다는 것을 어떻게 읽었는지 모르지만 그럼에도 불구하고 이것은 다소 도움이되기를 희망한다. Authorization 헤더를 추가하려는 경우 매우 간단해야합니다.

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

나는 다음을 사용하기 위해 조각으로 구즈 조각에 대한 나의 요청을 쌓아 올린다.

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

희망이 도움이됩니다. 또한 향후 버전에 따라 구문 변경 사항으로 사용중인 라이브러리 버전을 포함하십시오.


Guzzle 6을 사용하고 있습니다. Basic Auth Scheme을 사용하려면 다음을 수행하십시오.

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

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 요청을 보냅니다.


보이는 것부터 API 키를 사용하려고합니다. 원하는 효과를 얻으려면 아래처럼 사용자 이름으로 null 을 전달하면됩니다.

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




guzzle6