Elektu CurlTransport antaŭ ol pasigi nombrajn opciojn CURLOPT. La HTTP-kliento de Yii2 uzas StreamTransport defaŭlte kaj ne iĝas cURL nur ĉar tiuj konstantoj ĉeestas:

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

Uzu PHP-medion kun la etendaĵo cURL. Ĉi tiu ekzemplo atendas HTTP-prokurilon akceptantan Basic; agordu la prokurilon laŭ la metodo, kiun subtenas la transporto.

CURLOPT_PROXYAUTH elektas aŭtentikigon ĉe la peranto. CURLOPT_HTTPAUTH kaj API-rajtigo servas anstataŭe la celon.

La komunaj petoopcioj de Yii2, inkluzive de usklecsensiva prokurilo kaj tempolimoj, estas alia interfaco. Ili ne igas arbitrajn cURL-konstantojn porteblaj inter malantaŭaj sistemoj.

Se Client.requestConfig provizas defaŭltojn, kiuj devas resti, uzu addOptions por aldonoj po peto. La montrita setOptions anstataŭigas tiun kolekton kaj povas forigi heredajn elektojn.

Rilataj artikoloj