Sélectionnez CurlTransport avant de transmettre des options numériques CURLOPT. Le client HTTP de Yii2 utilise StreamTransport par défaut et ne devient pas cURL simplement parce que ces constantes sont présentes :

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

Utilisez une exécution PHP disposant de l'extension cURL. Cet exemple attend un proxy HTTP acceptant Basic ; adaptez le proxy à la méthode prise en charge par le transport.

CURLOPT_PROXYAUTH choisit l'authentification auprès de l'intermédiaire. CURLOPT_HTTPAUTH et l'autorisation de l'API servent quant à elles la destination.

Les options de requête partagées de Yii2, dont le proxy sensible à la casse et les délais, constituent une autre interface. Elles ne rendent pas des constantes cURL arbitraires portables d'un backend à l'autre.

Si Client.requestConfig fournit des valeurs par défaut qui doivent survivre, utilisez addOptions pour des ajouts par requête. Le setOptions montré remplace cette collection et peut supprimer des choix hérités.

Articles similaires