პროქსი IP-ის დაყენება Guzzle მოთხოვნისთვის
გამოიყენეთ Guzzle-ის მოთხოვნის proxy პარამეტრი და გაიგეთ დამმუშავებელზე დამოკიდებული კავშირის დროის ზღვარი და აშკარა გამონაკლისების სია.
Guzzle-ის proxy პარამეტრი საბოლოო წერტილის სრულ URL-ს იღებს. დააყენეთ მოთხოვნაზე, როცა შერჩეული IP მხოლოდ ამ ოპერაციამ უნდა გამოიყენოს.
<?php
require __DIR__ . '/vendor/autoload.php';
$client = new GuzzleHttp\Client();
$response = $client->request('GET', 'https://example.com/', [
'proxy' => 'http://203.0.113.10:8080',
'connect_timeout' => 5,
'timeout' => 15,
'http_errors' => false,
]);
echo $response->getStatusCode(), PHP_EOL;
echo (string) $response->getBody();
მაგალითი გულისხმობს Composer-ით დაყენებულ Guzzle 7-ს. დოკუმენტაციის მისამართი ჩაანაცვლეთ რეალური HTTP პროქსით პროვაიდერისგან ან HTTP პროქსიების სიიდან. სამიზნე მოთხოვნის URL-ში დატოვეთ: პროქსი შუამავალია და არა ჩამოსატვირთი რესურსი.
აქ http_errors false-ია, რათა HTTP შეცდომის პასუხი შესამოწმებლად ხელმისაწვდომი დარჩეს. კავშირის ჩავარდნები კვლავ გადაცემის გამონაკლისებს წარმოქმნის. ამიტომ შექმნისას უარყოფილი HTTPS გვირაბი შეიძლება საიტის ჩვეულებრივი პასუხის ობიექტის მიღებამდე ჩავარდეს.
შეამოწმეთ დამმუშავებელი, თუ კავშირის შეზღუდვები სხვაგვარად მუშაობს
Guzzle-ს სხვადასხვა HTTP დამმუშავებლის გამოყენება შეუძლია. დოკუმენტაცია ამბობს, რომ ჩაშენებული cURL დამმუშავებელი connect_timeout-ს უჭერს მხარს. საკუთარი დამმუშავებელი ან PHP cURL-ის გარეშე გარემო აუცილებელი არ არის ეკვივალენტური იყოს. გადაწერილი დროის პარამეტრის მოქმედების ვარაუდამდე შეამოწმეთ აპის დამმუშავებელი.
საერთო timeout-ის დაყენებაც ღირს. უფასო სიების ჩანაწერებმა შემოწმებებს შორის პასუხი შეიძლება შეწყვიტოს, ხოლო ნაგულისხმევი მნიშვნელობა სწრაფად დასასრულებელი მოთხოვნისთვის სასარგებლო ვადა არ არის.
პროქსი რუკის გამოყენება
რუკა გზის არჩევას სამიზნის სქემის მიხედვით და პროქსის გვერდის ამვლელი ჰოსტების აშკარად მითითებას გაძლევთ:
'proxy' => [
'http' => 'http://203.0.113.10:8080',
'https' => 'http://203.0.113.10:8080',
'no' => [],
],
სტრიქონული პარამეტრის ნაცვლად ეს მასივი გამოიყენეთ. HTTPS გასაღები HTTPS სამიზნეებს ირჩევს; HTTP მნიშვნელობა კვლავ პროქსის მსმენელს აღწერს. სხვა მოსმენის პროტოკოლს საბოლოო წერტილის სხვა კონფიგურაცია სჭირდება.
მოთხოვნის proxy პარამეტრს როცა თავად აწვდით, Guzzle საჭირო no მნიშვნელობებსაც თქვენგან ელის და NO_PROXY-იდან ავტომატურად არ აკოპირებს. ცარიელი სია იზოლირებული პროქსი ტესტისთვის სასარგებლოა. თუ აპს განზრახ გვერდის ავლის წესები აქვს, აშკარად შეინარჩუნეთ.