CFNetworkCopyProxiesForURL ಹಿಂತಿರುಗಿಸುವ PAC URL ಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ
PAC ವಿಳಾಸವನ್ನು ಪ್ರಾಕ್ಸಿ ಎಂಡ್ಪಾಯಿಂಟ್ ಎಂದು ತಪ್ಪಾಗಿ ಭಾವಿಸದೆ CFNetwork ನ ಸ್ವಯಂಚಾಲಿತ ಪ್ರಾಕ್ಸಿ ಸಂರಚನೆಯ ಫಲಿತಾಂಶಗಳನ್ನು ಗಮ್ಯಸ್ಥಾನ-ನಿರ್ದಿಷ್ಟ ಮಾರ್ಗಗಳಾಗಿ ಪರಿವರ್ತಿಸಿ.
ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ವೆಬ್ಸೈಟ್ ತಲುಪುವ ಬಗೆಯನ್ನು CFNetwork ಅನ್ನು ಕೇಳಿ .pac ನಿಂದ ಕೊನೆಗೊಳ್ಳುವ URL ಪಡೆಯುತ್ತದೆ. ಆ ಹೋಸ್ಟ್ಹೆಸರನ್ನು ಸಾಕೆಟ್ ಸಂಪರ್ಕಕ್ಕೆ ಹಾಕುವುದು ತಪ್ಪು ದಾರಿ: ಅದು ಸಂರಚನಾ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಗುರುತಿಸುತ್ತದೆ.
CFNetworkCopyProxiesForURL ಗುರಿ URL ಗಾಗಿ ಕ್ರಮಬದ್ಧ ಶಬ್ದಕೋಶಗಳ ಸರಣಿಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಎಂಡ್ಪಾಯಿಂಟ್ ಕ್ಷೇತ್ರಗಳನ್ನು ಓದುವ ಮೊದಲು kCFProxyTypeKey ಪರಿಶೀಲಿಸಿ. kCFProxyTypeAutoConfigurationURL ಪ್ರಕಾರದ ಶಬ್ದಕೋಶ kCFProxyAutoConfigurationURLKey ಒದಗಿಸುತ್ತದೆ, ಅದಕ್ಕೆ ಇನ್ನೊಂದು ಮೌಲ್ಯಮಾಪನ ಹಂತ ಬೇಕು.
- ಸಿಸ್ಟಂನ ಪ್ರಸ್ತುತ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪಡೆದು ನಿಜವಾದ ಗಮ್ಯ URL ಗೆ ಮಾರ್ಗಗಳನ್ನು ಕೇಳಿ.
- ಫಲಿತಾಂಶವು PAC URL ಅನ್ನು ಉಲ್ಲೇಖಿಸಿದಾಗ, ಅದೇ ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ ಆ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ.
- ಫಲಿತಾಂಶದ ಅಭ್ಯರ್ಥಿಗಳ ಪ್ರಕಾರಗಳು ಮತ್ತು ಎಂಡ್ಪಾಯಿಂಟ್ಗಳನ್ನು ಓದಿ. HTTP ಪ್ರಾಕ್ಸಿ, SOCKS ಪ್ರಾಕ್ಸಿ ಮತ್ತು ನೇರ ಮಾರ್ಗಕ್ಕೆ ವಿಭಿನ್ನ ಸಂಪರ್ಕ ನಿರ್ವಹಣೆ ಬೇಕು.
- ಅನುಮತಿಸಿದ ವೈಫಲ್ಯ ಮತ್ತು ಫಾಲ್ಬ್ಯಾಕ್ ವರ್ತನೆಯನ್ನು ಅನ್ವಯಿಸುವಾಗ ಅಭ್ಯರ್ಥಿಗಳ ಕ್ರಮವನ್ನು ಕಾಪಾಡಿ.
CFNetworkExecuteProxyAutoConfigurationURL ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಅಸಮಕಾಲಿಕವಾಗಿ ಡೌನ್ಲೋಡ್ ಮಾಡಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ. ಅದರ ತಕ್ಷಣದ ರಿಟರ್ನ್ ಮೌಲ್ಯವು run loop ಮೂಲವಾಗಿದೆ. ಆ ಮೂಲವನ್ನು ನಿಗದಿಪಡಿಸಿ; ಕೆಲಸ ಮುಗಿದ ನಂತರ ಕಾಲ್ಬ್ಯಾಕ್ ಮೌಲ್ಯಮಾಪನ ಫಲಿತಾಂಶ ಅಥವಾ ದೋಷವನ್ನು ನೀಡುತ್ತದೆ. ಮೂಲವನ್ನು ರಚಿಸಿ ತಕ್ಷಣ ಖಾಲಿ ಫಲಿತಾಂಶ ಚರವನ್ನು ಓದುವುದು ಏನನ್ನೂ ಕಾಯುವುದಿಲ್ಲ. ಕಾರ್ಯಾಚರಣೆಯನ್ನು ರದ್ದುಗೊಳಿಸಬೇಕಿದ್ದರೆ ಮೂಲವನ್ನು ಅಮಾನ್ಯಗೊಳಿಸಿ.
ಗುರಿ URL ಅನ್ನು ಹುಡುಕಾಟಕ್ಕೆ ಜೋಡಿಸಿಡಿ. PAC ಸ್ಕ್ರಿಪ್ಟ್ ಎರಡು ಹೋಸ್ಟ್ಗಳಿಗೆ ವಿಭಿನ್ನ ಮಾರ್ಗಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು, ಆದ್ದರಿಂದ ಒಂದು ಪರಿಹರಿಸಿದ ಪ್ರಾಕ್ಸಿಯನ್ನು ಮುಂದಿನ ಪ್ರತಿ ಗಮ್ಯಸ್ಥಾನಕ್ಕೂ ಉತ್ತರವಾಗಿ ಸಂಗ್ರಹಿಸುವುದು ಸ್ಕ್ರಿಪ್ಟ್ನ ನೀತಿಯನ್ನು ಬದಲಿಸುತ್ತದೆ. ಹಾಗೆಯೇ, ನೇರ ಅಭ್ಯರ್ಥಿ ಸ್ಪಷ್ಟ ಮಾರ್ಗ, ಕಾಣೆಯಾದ ಪ್ರಾಕ್ಸಿ ಹೋಸ್ಟ್ಹೆಸರಲ್ಲ.
ಈ API ಗಳು ಕಸ್ಟಮ್ ಸಾಗಣೆ ವ್ಯವಸ್ಥೆಯ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಅರ್ಥೈಸಬೇಕಾದಾಗ ಉಪಯುಕ್ತ. ಅವು ಆ ಸಾಗಣೆಗೆ ಮುಂದಿನ ಪ್ರಾಕ್ಸಿ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಜಾರಿಗೊಳಿಸುವುದಿಲ್ಲ, ಮತ್ತು ಹುಡುಕಾಟವು Keychain ನಿಂದ ಗುಪ್ತಪದಗಳನ್ನು ಪಡೆಯುವುದಿಲ್ಲ. macOS ನಲ್ಲಿ, Keychain ನಲ್ಲಿ ಪ್ರಾಕ್ಸಿ ರುಜುವಾತನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಹೊಂದಿಸಿ.