Как заставить Guzzle работать с CURLOPT_USERPWD?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как заставить Guzzle работать с CURLOPT_USERPWD?

Сообщение Anonymous »

У меня есть следующий PHP-код Curl для создания токена безопасности в приложении.
Когда я запускаю этот код, он работает отлично.

Код: Выделить всё

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://host.com/api/v1/auth/keys');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{}");
curl_setopt($ch, CURLOPT_USERPWD, 'admin' . ':' . 'password');

$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Accept: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
Но на данный момент мне нужна версия этого скрипта Curl для Guzzle, и именно здесь начинается эта проблема.
Я нашел разные способы обработки аутентификации в Guzzle, но пока ничего не работает.
Вот что я придумал:
используйте GuzzleHttp\Client;

Код: Выделить всё

include "../vendor/autoload.php";

try{

$client = new Client(['base_uri' => 'https://host.com/api/v1/']);

$client->request('POST', 'auth/keys',[
'config' => [
'curl' => [
// CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_USERPWD  => 'admin:password'
]
],
'headers' => [
'Content-Type' => 'application/json',
'Accept'       => 'application/json',
]
]);

print_r($client->getBody()->getContents());

}catch (Exception $e) {
print_r([
"status" => false,
"message" => $e->getMessage()
]);
}
Вместо возврата токена безопасности я получаю сообщение об ошибке «401 Несанкционированный ответ» — что означает, что правильная аутентификация не получена.
Что именно я делаю неправильно?

Подробнее здесь: https://stackoverflow.com/questions/684 ... pt-userpwd
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»