يسأل تطبيقك CFNetwork عن كيفية الوصول إلى موقع ويب فيحصل على عنوان URL ينتهي بـ .pac. إدخال اسم المضيف هذا في اتصال المقبس منعطف خاطئ: فهو يحدد نصًا برمجيًا للتكوين.

يعيد CFNetworkCopyProxiesForURL مصفوفة مرتبة من القواميس لعنوان URL الهدف. افحص kCFProxyTypeKey قبل قراءة حقول نقطة النهاية. القاموس من النوع kCFProxyTypeAutoConfigurationURL يوفّر kCFProxyAutoConfigurationURLKey، وهو ما يتطلب خطوة تقييم أخرى.

  1. احصل على إعدادات الوكيل الحالية في النظام واطلب مسارات إلى عنوان URL الفعلي للوجهة.
  2. عندما تشير نتيجة إلى عنوان PAC، قيّم ذلك النص البرمجي للوجهة نفسها.
  3. اقرأ أنواع المرشحين ونقاط النهاية الناتجة. وكيل HTTP ووكيل SOCKS والمسار المباشر تتطلب معالجة اتصال مختلفة.
  4. حافظ على ترتيب المرشحين عند تطبيق سلوك الفشل والرجوع المسموح به.

ينزّل CFNetworkExecuteProxyAutoConfigurationURL النص البرمجي ويقيّمه بشكل غير متزامن. القيمة المُعادة فورًا هي مصدر حلقة تشغيل. جدول ذلك المصدر؛ يوفّر النداء النتيجة أو الخطأ بعد اكتمال العمل. إنشاء المصدر وقراءة متغير نتيجة فارغ فورًا لا ينتظر شيئًا. أبطل المصدر إذا كان يجب إلغاء العملية.

أبقِ عنوان URL الهدف مرتبطًا بالبحث. يمكن لنص PAC اختيار مسارات مختلفة لمضيفين، لذا فإن تخزين وكيل واحد محلول كإجابة لكل وجهة لاحقة يغيّر سياسة النص البرمجي. وبالمثل، المرشح المباشر مسار صريح وليس اسم مضيف وكيل مفقودًا.

هذه الواجهات مفيدة عندما يجب على نقل مخصص أن يفسّر إعدادات النظام. وهي لا تنفّذ بروتوكول الوكيل اللاحق لذلك النقل، ولا يجلب البحث كلمات المرور من Keychain. على macOS، طابق بيانات اعتماد الوكيل في Keychain بشكل منفصل.

مقالات ذات صلة