Izberite CurlTransport, preden posredujete številske možnosti CURLOPT. Odjemalec HTTP Yii2 privzeto uporablja StreamTransport in ne postane cURL samo zato, ker so te konstante prisotne:

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

Uporabite okolje PHP z razširitvijo cURL. Ta primer pričakuje posrednika HTTP, ki sprejema Basic; uskladite posrednika z metodo, ki jo transport podpira.

CURLOPT_PROXYAUTH izbere preverjanje pri posredniku. CURLOPT_HTTPAUTH in avtorizacija API pa služita cilju.

Skupne možnosti zahtevkov Yii2, vključno s posrednikom, občutljivim na velike in male črke, ter časovnimi omejitvami, so drug vmesnik. Ne naredijo poljubnih konstant cURL prenosljivih med zalednimi sistemi.

Če Client.requestConfig zagotavlja privzete vrednosti, ki morajo ostati, uporabite addOptions za dodatke pri posameznem zahtevku. Prikazani setOptions nadomesti to zbirko in lahko odstrani podedovane izbire.

Sorodni članki