ಪ್ರಾಕ್ಸಿ ಡೇಟಾವನ್ನು ತಲುಪಿಸುತ್ತದೆ. ನಿಮ್ಮ ಬರವಣಿಗೆ ಕಾಲ್‌ಬ್ಯಾಕ್ ತಪ್ಪು ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ನಂತರ libcurl ರದ್ದುಗೊಳಿಸುತ್ತದೆ, ಮತ್ತು ಸುತ್ತಲಿನ ಕೋಡ್ ಇನ್ನೊಂದು “ಪ್ರಾಕ್ಸಿ ಡೌನ್‌ಲೋಡ್ ವೈಫಲ್ಯ” ವರದಿ ಮಾಡುತ್ತದೆ.

ಕಾಲ್‌ಬ್ಯಾಕ್ ನಿಜವಾಗಿ ಎಷ್ಟು ಸ್ವೀಕರಿಸಿದ ಬೈಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿತು ಎಂದು ವರದಿ ಮಾಡಬೇಕು. ಬೇರೆ ಎಣಿಕೆಯನ್ನು ಹಿಂತಿರುಗಿಸುವುದು ವೈಫಲ್ಯವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ನಿರ್ಬಂಧಿಸುವ ಬರವಣಿಗೆ ಗುರಿಗೆ, ಒಂದು ತುಣುಕು ಹೀಗಿರಬಹುದು:

curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_WRITEFUNCTION,
    function ($handle, $chunk) use ($sink) {
        $written = fwrite($sink, $chunk);
        return $written === false ? 0 : $written;
    }
);

ಇದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್ handle ಮತ್ತು ಬರವಣಿಗೆ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ ಎಂದು ಊಹಿಸುತ್ತದೆ. ವಿಫಲ ಅಥವಾ ಚಿಕ್ಕ ಬರವಣಿಗೆ ಇಡೀ ತುಣುಕು ಉಳಿಸಲಾಗಿದೆ ಎಂದು ಸದ್ದಿಲ್ಲದೆ ಹೇಳುವ ಬದಲು ರದ್ದುಗೊಳಿಸುತ್ತದೆ. ನಿರ್ಬಂಧಿಸದ ಗುರಿಗೆ ಸೂಕ್ತವಾದ ಬಫರಿಂಗ್ ಮತ್ತು ವಿರಾಮ/ಪುನರಾರಂಭ ವಿನ್ಯಾಸ ಬೇಕು; ಸಣ್ಣ ತುಣುಕು ಅದನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ.

ಬೈಟ್‌ಗಳನ್ನು ಎಣಿಸಿ, ಪ್ರದರ್ಶಿತ ಅಕ್ಷರಗಳನ್ನಲ್ಲ. ಡೇಟಾ ಬೈನರಿ ಅಥವಾ ಬಹು-ಬೈಟ್ ಪಠ್ಯ ಅನುಕ್ರಮದ ಭಾಗವಾಗಿರಬಹುದು. ಒಂದು ಕಾಲ್‌ಬ್ಯಾಕ್ ಅಗತ್ಯವಾಗಿ ಒಂದು ಸಾಲು, ಒಂದು JSON ದಾಖಲೆ ಅಥವಾ ಸೇವೆಯಿಂದ ಒಂದು ಸಂದೇಶವಲ್ಲ.

ಹೆಚ್ಚಳಿಕ ಪಾರ್ಸಿಂಗ್‌ಗೆ ಕಾಲ್‌ಬ್ಯಾಕ್‌ಗಳ ನಡುವೆ ತನ್ನದೇ ಸ್ಥಿತಿ ಬೇಕು. ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ, ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಪ್ರತಿ ತುಣುಕನ್ನು ಸಂಗ್ರಹಿಸುವುದು ಸಣ್ಣ ಸೀಮಿತ ಪ್ರತಿಕ್ರಿಯೆಗೆ ಸರಿಯಾಗಿರಬಹುದು, ಆದರೆ ದೊಡ್ಡ ಅಥವಾ ಅಂತ್ಯವಿಲ್ಲದ ಸ್ಟ್ರೀಮ್‌ಗೆ ಮೆಮೊರಿ ನೀತಿಯಲ್ಲ.

ವರ್ಗಾವಣೆಯ ಫಲಿತಾಂಶ ಮತ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ವೈಫಲ್ಯದ ಸಾಕ್ಷ್ಯವನ್ನು ಇರಿಸಿಕೊಳ್ಳಿ. ಮಾನ್ಯ ಪ್ರಾಕ್ಸಿ ಮಾರ್ಗ ಸ್ಥಾಪಿಸಿದ ನಂತರ ಸ್ಥಳೀಯ ಡಿಸ್ಕ್ ದೋಷ ಅಥವಾ ಪಾರ್ಸರ್ ನಿಲುಗಡೆ ಸಂಭವಿಸಬಹುದು. ನೀವು ಪೂರ್ವಪ್ರತ್ಯಯದ ನಂತರ ನಿಲ್ಲಲು ಉದ್ದೇಶಿಸಿದರೆ, ಆ ಉದ್ದೇಶಪೂರ್ವಕ ಕಾಲ್‌ಬ್ಯಾಕ್ ನಿಲುಗಡೆಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಗುರುತಿಸಿ. ಪ್ರಾಕ್ಸಿ ವಿಳಾಸವನ್ನು ಬದಲಿಸುವುದು ಡೇಟಾ ಸ್ವೀಕರಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿದ ಗುರಿಯನ್ನು ಸರಿಪಡಿಸಲಾರದು.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು