Izvēlieties CurlTransport pirms skaitlisko CURLOPT opciju nodošanas. Yii2 HTTP klients pēc noklusējuma izmanto StreamTransport un nekļūst par cURL tikai tāpēc, ka šīs konstantes ir pieejamas:

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

Izmantojiet PHP vidi ar cURL paplašinājumu. Šis piemērs sagaida HTTP starpniekserveri, kas pieņem Basic; saskaņojiet starpniekserveri ar metodi, ko atbalsta transports.

CURLOPT_PROXYAUTH izvēlas starpnieka autentifikāciju. CURLOPT_HTTPAUTH un API autorizācija savukārt apkalpo galamērķi.

Yii2 koplietotās pieprasījuma opcijas, tostarp reģistrjūtīgs starpniekserveris un taimauti, ir cita saskarne. Tās nepadara patvaļīgas cURL konstantes pārnesamas starp backendiem.

Ja Client.requestConfig nodrošina noklusējumus, kuriem jāsaglabājas, izmantojiet addOptions papildinājumiem katram pieprasījumam. Parādītais setOptions aizstāj šo kolekciju un var noņemt mantotos iestatījumus.

Saistītie raksti