数値の CURLOPT オプションを渡す前に CurlTransport を選択します。Yii2 の HTTP クライアントは既定で 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();

cURL 拡張を備えた PHP 実行環境を使用します。この例は Basic を受け付ける HTTP プロキシを前提としています。プロキシは transport が対応する方式に合わせてください。

CURLOPT_PROXYAUTH は中継先の認証を選びます。CURLOPT_HTTPAUTH と API 認可は、代わりに宛先に対する認証です。

Yii2 の共有リクエストオプション(大文字小文字を区別するプロキシやタイムアウトを含む)は別のインターフェースです。任意の cURL 定数をバックエンド間で移植可能にはしません。

残す必要のある既定値が Client.requestConfig にある場合は、リクエストごとの追加に addOptions を使ってください。示した setOptions はそのコレクションを置き換えるため、継承した設定が失われることがあります。

関連記事