Vyhodnoťte URL adresy PAC, ktoré vracia CFNetworkCopyProxiesForURL
Premeňte výsledky automatickej konfigurácie proxy v CFNetwork na trasy špecifické pre cieľ bez toho, aby ste si pomýlili adresu PAC s koncovým bodom proxy.
Vaša aplikácia sa pýta CFNetwork, ako sa dostať na webovú stránku, a dostane URL končiacu na .pac. Vloženie tohto názvu hostiteľa do socketového spojenia je nesprávna cesta: označuje konfiguračný skript.
CFNetworkCopyProxiesForURL vracia usporiadané pole slovníkov pre cieľovú URL. Pred čítaním polí koncového bodu skontrolujte kCFProxyTypeKey. Slovník typu kCFProxyTypeAutoConfigurationURL poskytuje kCFProxyAutoConfigurationURLKey, čo si vyžaduje ďalší krok vyhodnotenia.
- Získajte aktuálne systémové nastavenia proxy a požiadajte o trasy k skutočnej cieľovej URL.
- Keď výsledok odkazuje na URL PAC, vyhodnoťte tento skript pre ten istý cieľ.
- Prečítajte si typy a koncové body získaných kandidátov. Proxy HTTP, proxy SOCKS a priama trasa si vyžadujú odlišné spracovanie spojenia.
- Pri uplatňovaní povoleného správania pri zlyhaní a zálohe zachovajte poradie kandidátov.
CFNetworkExecuteProxyAutoConfigurationURL stiahne a vyhodnotí skript asynchrónne. Jeho okamžitá návratová hodnota je zdroj run loop. Naplánujte tento zdroj; spätné volanie poskytne výsledok vyhodnotenia alebo chybu po dokončení práce. Vytvorenie zdroja a okamžité prečítanie prázdnej výsledkovej premennej na nič nečaká. Zneplatnite zdroj, ak sa má operácia zrušiť.
Udržujte cieľovú URL pripojenú k vyhľadávaniu. Skript PAC môže pre dvoch hostiteľov zvoliť rozdielne trasy, takže uloženie jedného vyriešeného proxy ako odpovede pre každý nasledujúci cieľ mení politiku skriptu. Rovnako tak priamy kandidát je výslovná trasa, nie chýbajúci názov hostiteľa proxy.
Tieto API sú užitočné, keď vlastný transport musí interpretovať systémové nastavenia. Neimplementujú nasledujúci proxy protokol pre tento transport a vyhľadávanie nezískava heslá z Keychain. V systéme macOS zosúlaďte prihlasovacie údaje proxy v Keychain oddelene.