ਸੰਖਿਆਤਮਕ CURLOPT ਵਿਕਲਪ ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ CurlTransport ਚੁਣੋ। Yii2 ਦਾ HTTP ਕਲਾਇੰਟ ਡਿਫ਼ਾਲਟ ਰੂਪ ਵਿੱਚ StreamTransport ਵਰਤਦਾ ਹੈ ਅਤੇ ਸਿਰਫ਼ ਉਹਨਾਂ ਸਥਿਰਾਂਕਾਂ ਦੇ ਹੋਣ ਕਾਰਨ cURL ਨਹੀਂ ਬਣਦਾ:

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

cURL ਐਕਸਟੈਂਸ਼ਨ ਵਾਲਾ PHP ਰਨਟਾਈਮ ਵਰਤੋ। ਇਹ ਉਦਾਹਰਨ Basic ਸਵੀਕਾਰ ਕਰਨ ਵਾਲੀ HTTP ਪ੍ਰੌਕਸੀ ਦੀ ਉਮੀਦ ਕਰਦੀ ਹੈ; ਪ੍ਰੌਕਸੀ ਨੂੰ ਉਸ ਢੰਗ ਨਾਲ ਮਿਲਾਓ ਜਿਸਦਾ ਟ੍ਰਾਂਸਪੋਰਟ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।

CURLOPT_PROXYAUTH ਵਿਚੋਲਾ ਪ੍ਰਮਾਣਿਕਤਾ ਚੁਣਦਾ ਹੈ। CURLOPT_HTTPAUTH ਅਤੇ API ਅਧਿਕਾਰ ਇਸ ਦੀ ਥਾਂ ਮੰਜ਼ਿਲ ਦੀ ਸੇਵਾ ਕਰਦੇ ਹਨ।

Yii2 ਦੇ ਸਾਂਝੇ ਬੇਨਤੀ ਵਿਕਲਪ, ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਕੇਸ-ਸੰਵੇਦੀ ਪ੍ਰੌਕਸੀ ਅਤੇ ਸਮਾਂ ਸੀਮਾਵਾਂ ਸ਼ਾਮਲ ਹਨ, ਦੂਜਾ ਇੰਟਰਫ਼ੇਸ ਹਨ। ਉਹ ਮਨਮਾਨੇ cURL ਸਥਿਰਾਂਕਾਂ ਨੂੰ ਬੈਕਐਂਡਾਂ ਵਿਚਕਾਰ ਲਿਜਾਣਯੋਗ ਨਹੀਂ ਬਣਾਉਂਦੇ।

ਜੇ Client.requestConfig ਅਜਿਹੇ ਡਿਫ਼ਾਲਟ ਦਿੰਦਾ ਹੈ ਜੋ ਬਚਣੇ ਚਾਹੀਦੇ ਹਨ, ਤਾਂ ਪ੍ਰਤੀ-ਬੇਨਤੀ ਜੋੜਾਂ ਲਈ addOptions ਵਰਤੋ। ਦਿਖਾਇਆ ਗਿਆ setOptions ਉਸ ਸੰਗ੍ਰਹਿ ਨੂੰ ਬਦਲ ਦਿੰਦਾ ਹੈ ਅਤੇ ਵਿਰਾਸਤੀ ਚੋਣਾਂ ਹਟਾ ਸਕਦਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ