د Guzzle cURL هینډلر: د پروکسي CONNECT سرلیکونه نیول
کله چې د پروکسي CONNECT ځواب او د وېبپاڼې ځواب دواړه مهم وي، د Guzzle د cURL هینډلر سره جلا د ځواب سرلیک بلاکونه ونیسئ.
د HTTP پروکسي له لارې د HTTPS غوښتنه کولی شي د CONNECT منونکې یوه ځواب او بیا په هغه تونل کې د وېبپاڼې بل ځواب ترلاسه کړي. د لومړني لارې تنظیم لپاره د Guzzle د هرې غوښتنې پروکسي انتخاب وګورئ. په لومړي ځواب کې سرلیک اړین نه دی چې په وروستي ځواب شي کې وي.
د خپل ټاکلي HTTP پای ټکي سره د بیا تولید لپاره له HTTP پراکسي لېست څخه یو کاندید واخلئ او تایید کړئ چې HTTPS تونل مني. د Guzzle 7.10 د cURL-هینډلر په لار کې، هر د سرلیک بیرته غوښتنه جلا بلاک کې وساتئ:
$blocks = [];
$client = new \GuzzleHttp\Client([
'handler' => \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
),
]);
$response = $client->get('https://www.example.com/', [
'proxy' => 'http://proxy.example:8080',
'curl' => [CURLOPT_SUPPRESS_CONNECT_HEADERS => false],
'on_headers' => function (
\Psr\Http\Message\ResponseInterface $part
) use (&$blocks) {
$blocks[] = [
'status' => $part->getStatusCode(),
'reason' => $part->getReasonPhrase(),
'headers' => $part->getHeaders(),
];
},
]);
cURL غزول باید CURLOPT_SUPPRESS_CONNECT_HEADERS وړاندې کړي، دا هغه انتخاب دی چې libcurl 7.54.0 معرفي کړی. false ته ټاکل یې CONNECT سرلیکونو ته اجازه ورکوي چې د cURL د سرلیک بیرته غوښتنې ته ورسیږي. د Guzzle 7.10 هینډلر د هر بشپړ شوي سرلیک بلاک لپاره ځواب جوړوي او په هغه حد کې on_headers غواړي.
بلاکونه په ترتیب کې وساتئ. د تصدیق ننګونې، بیا لارښوونې او معلوماتي ځوابونه کولی شي اضافي بلاکونه جوړ کړي؛ ټول ارزښتونه په یوې لړ کې مه هواروئ او یو ځواب یوازې د دې لپاره مه ډلبندي کوئ چې حالت یې 200 دی.
راغونډ شوی ځواب د بشپړې شوې غوښتنې ځواب ښیي، پداسې حال کې چې blocks د بیرته غوښتنو لخوا راټول شوي مشاهدې ساتي. که د تونل یا TLS تنظیم ناکام شي، په غوښتونکي اپلیکیشن کې د انتقال استثنا چې غورځول شوې ده سمبال کړئ؛ کیدای شي وروستی د وېبپاڼې ځواب نه وي.
دا چلند د یاد شوي cURL هینډلر سره تړلی دی. دودیز یا جریاني هینډلر اړ نه دی چې ورته د پروکسي لاس ورکولو بیرته غوښتنې وړاندې کړي. د پروکسي نیول شوي سرلیکونه د تشخیصي معلوماتو په توګه وګڼئ او له حساب سره تړلي ارزښتونه بې اړتیا له ساتلو څخه ډډه وکړئ.