PAC-URL's evalueren die CFNetworkCopyProxiesForURL teruggeeft
Zet de resultaten van CFNetwork's automatische proxyconfiguratie om in routes die specifiek zijn voor de bestemming, zonder het PAC-adres aan te zien voor het proxy-eindpunt.
Uw app vraagt CFNetwork hoe een website bereikbaar is en krijgt een URL die eindigt op .pac. Die hostnaam in de socketverbinding zetten is de verkeerde weg: hij wijst een configuratiescript aan.
CFNetworkCopyProxiesForURL geeft een geordende reeks woordenboeken voor de doel-URL terug. Bekijk kCFProxyTypeKey voordat u de velden van het eindpunt leest. Een woordenboek van het type kCFProxyTypeAutoConfigurationURL levert kCFProxyAutoConfigurationURLKey, dat nog een evaluatiestap vereist.
- Haal de huidige proxyinstellingen van het systeem op en vraag routes naar de werkelijke bestemmings-URL.
- Wanneer een resultaat naar een PAC-URL verwijst, evalueer dat script dan voor dezelfde bestemming.
- Lees de resulterende kandidaattypen en eindpunten. Een HTTP-proxy, een SOCKS-proxy en een directe route vereisen een verschillende afhandeling van de verbinding.
- Behoud de volgorde van de kandidaten bij het toepassen van het toegestane fout- en terugvalgedrag.
CFNetworkExecuteProxyAutoConfigurationURL downloadt en evalueert het script asynchroon. De onmiddellijke retourwaarde is een run loop-bron. Plan die bron in; de callback levert het evaluatieresultaat of de fout nadat het werk klaar is. De bron aanmaken en meteen een lege resultaatvariabele lezen wacht nergens op. Maak de bron ongeldig als de bewerking moet worden geannuleerd.
Houd de doel-URL aan de opzoeking gekoppeld. Een PAC-script kan voor twee hosts verschillende routes kiezen, dus één opgeloste proxy opslaan als antwoord voor elke volgende bestemming verandert het beleid van het script. Evenzo is een directe kandidaat een expliciete route, geen ontbrekende proxhostnaam.
Deze API's zijn nuttig wanneer een aangepast transport de systeeminstellingen moet interpreteren. Ze implementeren het volgende proxyprotocol voor dat transport niet, en de opzoeking haalt geen wachtwoorden uit de Keychain. Op macOS koppelt u de proxyreferentie apart in de Keychain.