Vaše aplikace se CFNetwork ptá, jak dosáhnout na web, a dostane URL končící na .pac. Vložit toto jméno hostitele do socketového připojení je špatný krok: označuje konfigurační skript.

CFNetworkCopyProxiesForURL vrací seřazené pole slovníků pro cílové URL. Před čtením polí koncového bodu zkontrolujte kCFProxyTypeKey. Slovník typu kCFProxyTypeAutoConfigurationURL poskytuje kCFProxyAutoConfigurationURLKey, což vyžaduje další krok vyhodnocení.

  1. Získejte aktuální systémové nastavení proxy a požádejte o trasy ke skutečnému cílovému URL.
  2. Když výsledek odkazuje na PAC URL, vyhodnoťte tento skript pro stejný cíl.
  3. Přečtěte si výsledné typy kandidátů a koncové body. HTTP proxy, SOCKS proxy a přímá trasa vyžadují odlišné zacházení s připojením.
  4. Při uplatňování povoleného chování při selhání a záložního postupu zachovejte pořadí kandidátů.

CFNetworkExecuteProxyAutoConfigurationURL stáhne a vyhodnotí skript asynchronně. Jeho okamžitá návratová hodnota je zdroj smyčky událostí. Naplánujte tento zdroj; po dokončení práce zpětné volání dodá výsledek vyhodnocení nebo chybu. Vytvořit zdroj a okamžitě přečíst prázdnou proměnnou výsledku nic nečeká. Pokud má být operace zrušena, zdroj zneplatněte.

Udržujte cílové URL spojené s vyhledáním. Skript PAC může pro dva hostitele zvolit různé trasy, takže uložení jednoho vyřešeného proxy jako odpovědi pro každý další cíl mění zásady skriptu. Stejně tak přímý kandidát je výslovná trasa, nikoli chybějící jméno proxy hostitele.

Tato API jsou užitečná, když vlastní transport musí interpretovat systémová nastavení. Neimplementují následný proxy protokol pro tento transport a vyhledání nenačítá hesla z Keychain. V macOS přiřaďte přihlašovací údaje proxy v Keychain samostatně.

Související články