Kies CurlTransport voordat u numerieke CURLOPT-opties doorgeeft. De HTTP-client van Yii2 gebruikt standaard StreamTransport en wordt niet cURL alleen omdat die constanten aanwezig zijn:

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

Gebruik een PHP-runtime met de cURL-extensie. Dit voorbeeld verwacht een HTTP-proxy die Basic accepteert; stem de proxy af op de methode die het transport ondersteunt.

CURLOPT_PROXYAUTH kiest authenticatie bij de tussenpartij. CURLOPT_HTTPAUTH en API-autorisatie dienen in plaats daarvan de bestemming.

De gedeelde verzoekopties van Yii2, waaronder hoofdlettergevoelige proxy en time-outs, zijn een andere interface. Ze maken willekeurige cURL-constanten niet overdraagbaar tussen backends.

Als Client.requestConfig standaardwaarden levert die moeten blijven, gebruik dan addOptions voor toevoegingen per verzoek. De getoonde setOptions vervangt die verzameling en kan geërfde keuzes verwijderen.

Gerelateerde artikelen