Velg CurlTransport før du sender numeriske CURLOPT-valg. HTTP-klienten i Yii2 bruker StreamTransport som standard og blir ikke cURL bare fordi disse konstantene er til stede:

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

Bruk en PHP-kjøretid med cURL-utvidelsen. Eksempelet forutsetter en HTTP-proxy som godtar Basic; tilpass proxyen til metoden som transporten støtter.

CURLOPT_PROXYAUTH velger autentisering mot mellomleddet. CURLOPT_HTTPAUTH og API-autorisasjon tjener derimot målet.

Yii2s delte forespørselsvalg, blant annet proxy med skille mellom store og små bokstaver og tidsavbrudd, er et annet grensesnitt. De gjør ikke vilkårlige cURL-konstanter flyttbare mellom ulike backends.

Dersom Client.requestConfig gir standardverdier som må bestå, bruk addOptions for tillegg per forespørsel. Den viste setOptions erstatter denne samlingen og kan fjerne arvede valg.

Relaterte artikler