Guzzle хүсэлтэд прокси IP тохируулах
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();
Жишээ нь Guzzle 7 Composer-оор суусан гэж үзнэ. Баримтжуулалтын хаягийг үйлчилгээ үзүүлэгчийн эсвэл 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-оос автоматаар хуулахгүй. Хоосон жагсаалт тусгаарласан прокси туршилтад хэрэгтэй. Аппд зориудын тойрох дүрэм байвал тэдгээрийг тодорхой хадгал.