Välj CurlTransport innan du skickar numeriska CURLOPT-alternativ. Yii2:s HTTP-klient använder StreamTransport som standard och blir inte cURL bara för att dessa konstanter finns:

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

Använd en PHP-runtime med cURL-tillägget. Det här exemplet förutsätter en HTTP-proxy som accepterar Basic; anpassa proxyn till den metod som transporten stöder.

CURLOPT_PROXYAUTH väljer autentisering mot mellanhanden. CURLOPT_HTTPAUTH och API-auktorisering tjänar i stället målet.

Yii2:s delade förfrågningsalternativ, inklusive skiftlägeskänslig proxy och tidsgränser, är ett annat gränssnitt. De gör inte godtyckliga cURL-konstanter flyttbara mellan backends.

Om Client.requestConfig tillhandahåller standardvärden som måste bestå, använd addOptions för tillägg per förfrågan. Den visade setOptions ersätter den samlingen och kan ta bort ärvda val.

Relaterade artiklar