Guzzle HTTP - добавить заголовок авторизации непосредственно в запрос
Может кто-нибудь объяснить, как добавить заголовок авторизации в Guzzle? Я вижу, что приведенный ниже код работает для добавления имени пользователя и пароля, но в моем экземпляре я просто хочу добавить сам заголовок авторизации
$client->request('GET', '/get', ['auth' => ['username', 'password']
Заголовок основной авторизации Я хочу добавить к моему запросу GET: -
Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI=
Ответы
Ответ 1
Из взглядов вещей вы пытаетесь использовать ключ API. Чтобы получить желаемый эффект, просто пройдите null
в качестве имени пользователя, как показано ниже.
$client->request(
$method,
$url,
[
'auth' = [
null,
$api_key
],
]
);
Ответ 2
Я не знаю, как я пропустил чтение, что вы искали основной заголовок auth, но, тем не менее, надеюсь, что это поможет. Если вы просто хотите добавить заголовок авторизации, это должно быть довольно легко.
// Set various headers on a request
$client->request('GET', '/get', [
'headers' => [
'Authorization' => 'PUT WHATEVER YOU WANT HERE'
]
]);
Я создаю свой запрос в Gzzle по частям, поэтому я использую следующее:
$client = new GuzzleHttp\Client();
$request = $client->createRequest('GET', '/get');
$request->addHeader('X-Authorization', 'OAuth realm=<OAUTH STUFF HERE>');
$resp = $client->send($request);
Надеюсь, что это поможет. Кроме того, обязательно включите версию библиотек, которые вы используете в будущем, в качестве синтаксических изменений в зависимости от вашей версии.
Ответ 3
Я использую Guzzle 6. Если вы хотите использовать Basic Auth Scheme:
$client = new Client();
$credentials = base64_encode('username:password');
$response = $client->get('url',
[
'headers' => [
'Authorization' => 'Basic ' . $credentials,
],
]);
Ответ 4
use GuzzleHttp\Client;
...
$client = new Client(['auth' => [$username, $password]]);
$res = $client->request('GET', 'url', ['query' => ['param1'=>$p1, 'param2'=>'sometext']]);
$res->getStatusCode();
$response = $res->getBody();
Создает авторизованный клиент и отправляет запрос на получение вместе с требуемыми параметрами