Odaberite CurlTransport prije prijenosa numeričkih opcija CURLOPT. HTTP klijent Yii2 prema zadanim postavkama rabi StreamTransport i ne postaje cURL samo zato što su te konstante prisutne:

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

Rabite PHP okruženje s cURL proširenjem. Ovaj primjer očekuje HTTP proxy koji prihvaća Basic; uskladite proxy s metodom koju transport podržava.

CURLOPT_PROXYAUTH odabire autentikaciju posrednika. CURLOPT_HTTPAUTH i API autorizacija služe umjesto toga odredištu.

Zajedničke opcije zahtjeva u Yii2, uključujući proxy osjetljiv na velika i mala slova te vremenska ograničenja, drugi su interfejs. One ne čine proizvoljne cURL konstante prenosivima između pozadinskih sustava.

Ako Client.requestConfig daje zadane vrijednosti koje moraju opstati, rabite addOptions za dodavanja po zahtjevu. Prikazani setOptions zamjenjuje tu zbirku i može ukloniti naslijeđene odabire.

Povezani članci