Қолданбаңыз CFNetwork-тен веб-сайтқа қалай жетуге болатынын сұрап, .pac-мен аяқталатын URL алады. Сол хост атауын socket қосылысына қою қате жол: ол конфигурация скриптін көрсетеді.

CFNetworkCopyProxiesForURL мақсатты URL үшін сөздіктердің реттелген массивін қайтарады. Соңғы нүкте өрістерін оқымас бұрын kCFProxyTypeKey мәнін тексеріңіз. kCFProxyTypeAutoConfigurationURL түріндегі сөздік kCFProxyAutoConfigurationURLKey мәнін береді, ол тағы бір бағалау қадамын қажет етеді.

  1. Жүйенің ағымдағы прокси параметрлерін алып, нақты мақсатты URL-ге маршруттар сұраңыз.
  2. Нәтиже PAC URL-ге сілтеме жасаса, сол скриптті сол мақсат үшін бағалаңыз.
  3. Алынған кандидаттардың түрлері мен соңғы нүктелерін оқыңыз. HTTP проксиі, SOCKS проксиі және тікелей маршрут қосылысты әртүрлі өңдеуді қажет етеді.
  4. Рұқсат етілген сәтсіздік пен қосалқы әрекетті қолданғанда кандидаттар ретін сақтаңыз.

CFNetworkExecuteProxyAutoConfigurationURL скриптті асинхронды түрде жүктеп, бағалайды. Оның бірден қайтаратын мәні run loop көзі. Сол көзді жоспарлаңыз; жұмыс аяқталған соң callback бағалау нәтижесін немесе қатені береді. Көзді құрып, бос нәтиже айнымалысын бірден оқу ештеңе күтпейді. Операцияны тоқтату керек болса, көзді жарамсыз етіңіз.

Мақсатты URL-ді іздеуге байланыстырып ұстаңыз. PAC скрипті екі хост үшін әртүрлі маршрут таңдай алады, сондықтан бір шешілген проксиді барлық кейінгі мақсаттарға жауап ретінде сақтау скрипт саясатын өзгертеді. Сол сияқты, тікелей кандидат айқын маршрут, жоқ прокси хост атауы емес.

Бұл API-лер теңшелген тасымалдау жүйе параметрлерін түсіндіруі керек болғанда пайдалы. Олар сол тасымалдау үшін келесі прокси протоколын іске асырмайды және іздеу Keychain-нен құпия сөздерді алмайды. macOS-та прокси тіркелгі деректерін Keychain-де бөлек сәйкестендіріңіз.

Қатысты мақалалар