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 ಹ್ಯಾಂಡ್ಲರ್ಗೆ ಸಂಬಂಧಿಸಿದೆ. ಕಸ್ಟಮ್ ಅಥವಾ ಸ್ಟ್ರೀಮ್ ಹ್ಯಾಂಡ್ಲರ್ ಅದೇ ಪ್ರಾಕ್ಸಿ-ಹ್ಯಾಂಡ್ಶೇಕ್ ಕಾಲ್ಬ್ಯಾಕ್ಗಳನ್ನು ಒದಗಿಸಲು ನಿರ್ಬಂಧಿತವಲ್ಲ. ಸೆರೆಹಿಡಿದ ಪ್ರಾಕ್ಸಿ ಹೆಡರ್ಗಳನ್ನು ರೋಗನಿರ್ಣಯ ಡೇಟಾ ಎಂದು ಪರಿಗಣಿಸಿ ಮತ್ತು ಖಾತೆಗೆ ಸಂಬಂಧಿಸಿದ ಮೌಲ್ಯಗಳನ್ನು ಅನಗತ್ಯವಾಗಿ ಇಟ್ಟುಕೊಳ್ಳುವುದನ್ನು ತಪ್ಪಿಸಿ.