आपका ऐप CFNetwork से पूछता है कि किसी वेबसाइट तक कैसे पहुँचा जाए और उसे .pac पर समाप्त होने वाला URL मिलता है। उस होस्टनाम को सॉकेट कनेक्शन में डालना गलत रास्ता है: यह कॉन्फ़िगरेशन स्क्रिप्ट की पहचान करता है।

CFNetworkCopyProxiesForURL लक्ष्य URL के लिए शब्दकोशों की क्रमबद्ध सरणी लौटाता है। एंडपॉइंट फ़ील्ड पढ़ने से पहले kCFProxyTypeKey जाँचें। kCFProxyTypeAutoConfigurationURL प्रकार का शब्दकोश kCFProxyAutoConfigurationURLKey प्रदान करता है, जिसके लिए एक और मूल्यांकन चरण आवश्यक है।

  1. सिस्टम की वर्तमान प्रॉक्सी सेटिंग्स प्राप्त करें और वास्तविक गंतव्य URL के लिए मार्ग माँगें।
  2. जब कोई परिणाम PAC URL का संदर्भ देता है, तो उस स्क्रिप्ट का मूल्यांकन उसी गंतव्य के लिए करें।
  3. परिणामी उम्मीदवार प्रकार और एंडपॉइंट पढ़ें। HTTP प्रॉक्सी, SOCKS प्रॉक्सी और सीधा मार्ग अलग कनेक्शन हैंडलिंग चाहते हैं।
  4. अनुमत विफलता और फ़ॉलबैक व्यवहार लागू करते समय उम्मीदवारों का क्रम बनाए रखें।

CFNetworkExecuteProxyAutoConfigurationURL स्क्रिप्ट को अतुल्यकालिक रूप से डाउनलोड और मूल्यांकन करता है। इसका तत्काल रिटर्न मान एक run loop स्रोत है। उस स्रोत को शेड्यूल करें; कार्य पूरा होने के बाद कॉलबैक मूल्यांकन परिणाम या त्रुटि देता है। स्रोत बनाकर तुरंत खाली परिणाम चर पढ़ना किसी चीज़ की प्रतीक्षा नहीं करता। यदि ऑपरेशन रद्द करना हो तो स्रोत को अमान्य करें।

लक्ष्य URL को लुकअप से जुड़ा रखें। PAC स्क्रिप्ट दो होस्टों के लिए अलग मार्ग चुन सकती है, इसलिए एक हल किए गए प्रॉक्सी को हर आगामी गंतव्य के उत्तर के रूप में संग्रहीत करना स्क्रिप्ट की नीति बदल देता है। इसी तरह, सीधा उम्मीदवार एक स्पष्ट मार्ग है, गायब प्रॉक्सी होस्टनाम नहीं।

ये API तब उपयोगी हैं जब किसी कस्टम ट्रांसपोर्ट को सिस्टम सेटिंग्स की व्याख्या करनी हो। वे उस ट्रांसपोर्ट के लिए आगामी प्रॉक्सी प्रोटोकॉल लागू नहीं करते, और लुकअप Keychain से पासवर्ड नहीं लाता। macOS पर, Keychain में प्रॉक्सी क्रेडेंशियल को अलग से मिलाएँ.

संबंधित लेख