Seleccione CurlTransport antes de pasar opcións numéricas CURLOPT. O cliente HTTP de Yii2 usa StreamTransport por defecto e non se converte en cURL só porque esas constantes estean 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();

Use unha contorna PHP coa extensión cURL. Este exemplo espera un proxy HTTP que acepte Basic; axuste o proxy ao método que admite o transporte.

CURLOPT_PROXYAUTH escolle a autenticación do intermediario. CURLOPT_HTTPAUTH e a autorización da API atenden, en cambio, o destino.

As opcións compartidas de solicitude de Yii2, incluído o proxy sensible a maiúsculas e os tempos de espera, son outra interface. Non fan que constantes cURL arbitrarias sexan portables entre backends.

Se Client.requestConfig fornece valores predeterminados que deben sobrevivir, use addOptions para engadidos por solicitude. O setOptions mostrado substitúe esa colección e pode eliminar opcións herdadas.

Artigos relacionados