Guzzle හි cURL හැන්ඩ්ලරය: proxy CONNECT ශීර්ෂක ග්රහණය කරන්න
proxy CONNECT ප්රතිචාරය සහ වෙබ් අඩවියේ ප්රතිචාරය යන දෙකම වැදගත් වන විට Guzzle හි cURL හැන්ඩ්ලරය සමඟ වෙන වෙනම ප්රතිචාර ශීර්ෂක කුට්ටි ග්රහණය කරන්න.
HTTP proxy හරහා යන HTTPS ඉල්ලීමකට CONNECT පිළිගන්නා එක් ප්රතිචාරයක් සහ පසුව එම උමං තුළ ඇති වෙබ් අඩවියෙන් ප්රතිචාරයක් ලැබිය හැක. ආරම්භක මාර්ග සැකසුම සඳහා Guzzle හි ඉල්ලීමකට proxy විකල්පය බලන්න. පළමු ප්රතිචාරයේ ශීර්ෂකයක් අවසාන ප්රතිචාර වස්තුවේ තිබිය යුතුම නැත.
ඔබම තෝරන 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 දිගුව libcurl 7.54.0 විසින් හඳුන්වා දුන් CURLOPT_SUPPRESS_CONNECT_HEADERS විකල්පය ලබා දිය යුතුය. එය false ලෙස සැකසීමෙන් CONNECT ශීර්ෂක cURL හි ශීර්ෂක ආපසු ඇමතුමට ළඟා වේ. Guzzle 7.10 හැන්ඩ්ලරය සම්පූර්ණ වූ සෑම ශීර්ෂක කුට්ටියකටම ප්රතිචාරයක් ගොඩනඟා එම මායිමේදී on_headers අමතයි.
කුට්ටි පිළිවෙළින් තබා ගන්න. සත්යාපන අභියෝග, යළි-යොමු කිරීම් සහ තොරතුරු ප්රතිචාර අමතර කුට්ටි නිපදවිය හැක; සියලු අගයන් එක් අරාවකට පැතලි නොකරන්න, තත්ත්වය 200 යැයි පමණක් ප්රතිචාරයක් වර්ග නොකරන්න.
ආපසු දෙන ප්රතිචාරය සම්පූර්ණ වූ ඉල්ලීමේ ප්රතිචාරය නියෝජනය කරන අතර blocks ආපසු ඇමතුම් එකතු කළ නිරීක්ෂණ රඳවා ගනී. උමඟ හෝ TLS සැකසුම අසාර්ථක වුවහොත්, ඇමතුම් යෙදුම තුළ විසි කරන ලද සම්ප්රේෂණ ව්යතිරේකය හසුරුවන්න; අවසාන වෙබ් අඩවි ප්රතිචාරය නොතිබිය හැක.
මෙම හැසිරීම සඳහන් කළ cURL හැන්ඩ්ලරයට සම්බන්ධයි. අභිරුචි හෝ ධාරා හැන්ඩ්ලරයක් එම proxy-හස්ත සම්මුඛ ආපසු ඇමතුම් ලබා දීමට බැඳී නැත. ග්රහණය කළ proxy ශීර්ෂක රෝග විනිශ්චය දත්ත ලෙස සලකන්න, ගිණුමට සම්බන්ධ අගයන් අනවශ්ය ලෙස තබා ගැනීමෙන් වළකින්න.