Appen din spør CFNetwork om korleis ein nettstad kan nåast, og får ein URL som endar på .pac. Å setja det vertsnamnet inn i socket-tilkoplinga er feil veg: det peikar på eit konfigurasjonsskript.

CFNetworkCopyProxiesForURL returnerer ein ordna matrise med ordbøker for mål-URL-en. Gransk kCFProxyTypeKey før du les endepunktfelta. Ei ordbok av typen kCFProxyTypeAutoConfigurationURL gjev kCFProxyAutoConfigurationURLKey, som krev eitt evalueringstrinn til.

  1. Hent dei gjeldande proxyinnstillingane i systemet og be om ruter til den faktiske mål-URL-en.
  2. Når eit resultat viser til ein PAC-URL, evaluer det skriptet for same mål.
  3. Les typane og endepunkta til kandidatane som kjem ut. Ein HTTP-proxy, ein SOCKS-proxy og ei direkte rute krev ulik handsaming av tilkoplinga.
  4. Hald rekkjefølgja til kandidatane når du brukar den tillatne feil- og reserveåtferda.

CFNetworkExecuteProxyAutoConfigurationURL lastar ned og evaluerer skriptet asynkront. Den umiddelbare returverdien er ei run loop-kjelde. Set den kjelda i plan; tilbakekallinga gjev evalueringsresultatet eller feilen når arbeidet er ferdig. Å laga kjelda og lesa ein tom resultatvariabel med ein gong ventar ikkje på noko. Gjer kjelda ugyldig om operasjonen må avbrytast.

Hald mål-URL-en knytt til oppslaget. Eit PAC-skript kan velja ulike ruter for to vertar, så å lagra éin oppløyst proxy som svar for kvar seinare destinasjon endrar policyen til skriptet. På same måte er ein direkte kandidat ei eksplisitt rute, ikkje eit manglande proxy-vertsnamn.

Desse API-ane er nyttige når ein eigen transport må tolka systeminnstillingane. Dei implementerer ikkje den neste proxyprotokollen for den transporten, og oppslaget hentar ikkje passord frå Keychain. På macOS samsvarar du proxy-legitimasjonen i Keychain separat.

Relaterte artiklar