Виберіть CurlTransport, перш ніж передавати числові параметри CURLOPT. HTTP-клієнт Yii2 типово використовує StreamTransport і не стає cURL лише через наявність цих констант:

$client = new \yii\httpclient\Client([
    'transport' => \yii\httpclient\CurlTransport::class,
]);

$response = $client->createRequest()
    ->setMethod('GET')
    ->setUrl('https://api.example/items')
    ->setOptions([
        CURLOPT_PROXY => 'http://proxy.example:8080',
        CURLOPT_PROXYAUTH => CURLAUTH_BASIC,
        CURLOPT_PROXYUSERNAME => $proxyUser,
        CURLOPT_PROXYPASSWORD => $proxyPassword,
        CURLOPT_CONNECTTIMEOUT => 5,
        CURLOPT_TIMEOUT => 15,
    ])
    ->send();

Використовуйте середовище PHP з розширенням cURL. Цей приклад розраховує на HTTP-проксі, що приймає Basic; узгодьте проксі з методом, який підтримує транспорт.

CURLOPT_PROXYAUTH вибирає автентифікацію в посередника. CURLOPT_HTTPAUTH і авторизація API натомість обслуговують призначення.

Спільні параметри запитів Yii2, зокрема проксі з урахуванням регістру та тайм-аути, — це інший інтерфейс. Вони не роблять довільні константи cURL переносними між бекендами.

Якщо Client.requestConfig задає типові значення, які мають зберегтися, використовуйте addOptions для доповнень в окремому запиті. Показаний setOptions замінює цю колекцію і може прибрати успадковані налаштування.

Схожі статті