Selecione CurlTransport antes de passar opções numéricas CURLOPT. O cliente HTTP do Yii2 usa StreamTransport por predefinição e não passa a cURL só porque essas constantes estão presentes:

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

Utilize um ambiente PHP com a extensão cURL. Este exemplo pressupõe um proxy HTTP que aceite Basic; ajuste o proxy ao método suportado pelo transporte.

CURLOPT_PROXYAUTH escolhe a autenticação junto do intermediário. CURLOPT_HTTPAUTH e a autorização da API servem, em vez disso, o destino.

As opções de pedido partilhadas do Yii2, incluindo proxy sensível a maiúsculas e tempos limite, são outra interface. Não tornam constantes cURL arbitrárias portáveis entre backends.

Se Client.requestConfig fornecer predefinições que têm de subsistir, use addOptions para adições por pedido. O setOptions mostrado substitui essa coleção e pode remover escolhas herdadas.

Artigos relacionados