Vælg CurlTransport, før du sender numeriske CURLOPT-indstillinger. Yii2s HTTP-klient bruger som standard StreamTransport og bliver ikke cURL, blot fordi disse konstanter findes:

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

Brug en PHP-runtime med cURL-udvidelsen. Dette eksempel forventer en HTTP-proxy, der accepterer Basic; afstem proxien med den metode, transporten understøtter.

CURLOPT_PROXYAUTH vælger godkendelse hos mellemleddet. CURLOPT_HTTPAUTH og API-godkendelse betjener i stedet destinationen.

Yii2s delte anmodningsindstillinger, herunder proxy med forskel på store og små bogstaver samt timeouts, er en anden grænseflade. De gør ikke vilkårlige cURL-konstanter portable mellem backends.

Hvis Client.requestConfig leverer standardværdier, der skal bevares, så brug addOptions til tilføjelser pr. anmodning. Den viste setOptions erstatter den samling og kan fjerne nedarvede valg.

Relaterede artikler