აირჩიეთ CurlTransport სანამ რიცხვით CURLOPT პარამეტრებს გადასცემთ. 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();

გამოიყენეთ PHP გარემო cURL გაფართოებით. ეს მაგალითი ითვალისწინებს HTTP პროქსის, რომელიც იღებს Basic-ს; შეუსაბამეთ პროქსი იმ მეთოდს, რომელსაც ტრანსპორტი მხარს უჭერს.

CURLOPT_PROXYAUTH ირჩევს შუამავლის ავთენტიფიკაციას. CURLOPT_HTTPAUTH და API ავტორიზაცია სამაგიეროდ დანიშნულებას ემსახურება.

Yii2-ის საერთო მოთხოვნის პარამეტრები, მათ შორის რეგისტრზე მგრძნობიარე პროქსი და დროის ლიმიტები, სხვა ინტერფეისია. ისინი თვითნებურ cURL მუდმივებს backend-ებს შორის გადატანადს არ ხდიან.

თუ Client.requestConfig აძლევს ნაგულისხმევ მნიშვნელობებს, რომლებიც უნდა შენარჩუნდეს, გამოიყენეთ addOptions თითო მოთხოვნის დამატებებისთვის. ნაჩვენები setOptions ცვლის ამ კოლექციას და შეიძლება მემკვიდრეობით მიღებული არჩევანი წაშალოს.

დაკავშირებული სტატიები