Seleccioneu CurlTransport abans de passar opcions numèriques CURLOPT. El client HTTP de Yii2 fa servir StreamTransport per defecte i no es converteix en cURL només perquè aquestes constants hi siguin:

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

Feu servir un entorn PHP amb l'extensió cURL. Aquest exemple espera un proxy HTTP que accepti Basic; feu coincidir el proxy amb el mètode que admet el transport.

CURLOPT_PROXYAUTH tria l'autenticació de l'intermediari. CURLOPT_HTTPAUTH i l'autorització de l'API serveixen en canvi la destinació.

Les opcions compartides de sol·licitud de Yii2, incloent-hi el proxy sensible a majúscules i els temps d'espera, són una altra interfície. No fan que constants cURL arbitràries siguin portables entre backends.

Si Client.requestConfig proporciona valors per defecte que han de sobreviure, feu servir addOptions per a addicions per sol·licitud. El setOptions mostrat substitueix aquesta col·lecció i pot eliminar tries heretades.

Articles relacionats