Pilih CurlTransport sebelum meneruskan opsi CURLOPT numerik. Klien HTTP Yii2 secara default memakai StreamTransport dan tidak menjadi cURL hanya karena konstanta tersebut ada:

$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();

Gunakan runtime PHP dengan ekstensi cURL. Contoh ini mengharapkan proxy HTTP yang menerima Basic; sesuaikan proxy dengan metode yang didukung transport.

CURLOPT_PROXYAUTH memilih autentikasi perantara. CURLOPT_HTTPAUTH dan otorisasi API justru melayani tujuan.

Opsi permintaan bersama Yii2, termasuk proxy yang peka huruf besar-kecil dan batas waktu, adalah antarmuka lain. Opsi itu tidak membuat konstanta cURL sembarang portabel antarbackend.

Jika Client.requestConfig menyediakan nilai default yang harus dipertahankan, gunakan addOptions untuk tambahan per permintaan. setOptions yang ditampilkan menggantikan koleksi itu dan dapat menghapus pilihan warisan.

Artikel terkait