اختر 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 المعروض فيستبدل تلك المجموعة وقد يحذف خيارات موروثة.

مقالات ذات صلة