پیش از ارسال گزینه‌های عددی CURLOPT، CurlTransport را انتخاب کنید. کلاینت 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 نمایش‌داده‌شده آن مجموعه را جایگزین می‌کند و می‌تواند انتخاب‌های ارثی را حذف کند.

مقالات مرتبط