Selectați CurlTransport înainte de a transmite opțiuni numerice CURLOPT. Clientul HTTP din Yii2 folosește implicit StreamTransport și nu devine cURL doar pentru că aceste constante sunt prezente:

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

Folosiți un mediu PHP cu extensia cURL. Acest exemplu presupune un proxy HTTP care acceptă Basic; aliniați proxy-ul la metoda suportată de transport.

CURLOPT_PROXYAUTH alege autentificarea la intermediar. CURLOPT_HTTPAUTH și autorizarea API deservesc în schimb destinația.

Opțiunile de cerere partajate din Yii2, inclusiv proxy-ul sensibil la majuscule și limitele de timp, sunt o altă interfață. Ele nu fac constantele cURL arbitrare portabile între backend-uri.

Dacă Client.requestConfig oferă valori implicite care trebuie să rămână, folosiți addOptions pentru adăugiri pe cerere. setOptions prezentat înlocuiește acea colecție și poate elimina alegerile moștenite.

Articole similare