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 ನಿಂದ ತಾನಾಗಿಯೇ ನಕಲಿಸುವುದಿಲ್ಲ. ಖಾಲಿ ಪಟ್ಟಿ ಪ್ರತ್ಯೇಕ ಪ್ರಾಕ್ಸಿ ಪರೀಕ್ಷೆಗೆ ಉಪಯುಕ್ತ. ಆ್ಯಪ್ನಲ್ಲಿ ಉದ್ದೇಶಿತ ಬೈಪಾಸ್ ನಿಯಮಗಳಿದ್ದರೆ ಅವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಉಳಿಸಿ.