เลือก CurlTransport ก่อนส่งตัวเลือก CURLOPT แบบตัวเลข HTTP client ของ 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 runtime ที่มีส่วนขยาย cURL ตัวอย่างนี้คาดหวัง proxy HTTP ที่ยอมรับ Basic; ปรับ proxy ให้ตรงกับวิธีที่ transport รองรับ

CURLOPT_PROXYAUTH เลือกการตรวจสอบสิทธิ์กับตัวกลาง ส่วน CURLOPT_HTTPAUTH และการอนุญาต API ให้บริการปลายทางแทน

ตัวเลือกคำขอที่ใช้ร่วมกันของ Yii2 รวมถึง proxy ที่แยกตัวพิมพ์ใหญ่เล็กและเวลาหมดอายุ เป็นอินเทอร์เฟซอีกแบบหนึ่ง ตัวเลือกเหล่านี้ไม่ได้ทำให้ค่าคงที่ cURL ใด ๆ ย้ายข้าม backend ได้

หาก Client.requestConfig ให้ค่าเริ่มต้นที่ต้องคงอยู่ ให้ใช้ addOptions สำหรับการเพิ่มต่อคำขอ setOptions ที่แสดงจะแทนที่คอลเลกชันนั้นและอาจลบตัวเลือกที่สืบทอดมา

บทความที่เกี่ยวข้อง