Appen din spør CFNetwork hvordan et nettsted kan nås, og får en URL som slutter på .pac. Å sette det vertsnavnet inn i socket-tilkoblingen er feil vei: det identifiserer et konfigurasjonsskript.

CFNetworkCopyProxiesForURL returnerer en ordnet matrise med ordbøker for mål-URL-en. Undersøk kCFProxyTypeKey før du leser endepunktfeltene. En ordbok av typen kCFProxyTypeAutoConfigurationURL gir kCFProxyAutoConfigurationURLKey, som krever enda et evalueringstrinn.

  1. Hent systemets gjeldende proxyinnstillinger og be om ruter til den faktiske mål-URL-en.
  2. Når et resultat viser til en PAC-URL, evaluer det skriptet for samme mål.
  3. Les typene og endepunktene til kandidatene som kommer ut. En HTTP-proxy, en SOCKS-proxy og en direkte rute krever ulik tilkoblingshåndtering.
  4. Behold rekkefølgen til kandidatene når du bruker den tillatte feil- og reserveatferden.

CFNetworkExecuteProxyAutoConfigurationURL laster ned og evaluerer skriptet asynkront. Den umiddelbare returverdien er en run loop-kilde. Planlegg den kilden; tilbakeringingen gir evalueringsresultatet eller feilen når arbeidet er ferdig. Å opprette kilden og lese en tom resultatvariabel med en gang venter ikke på noe. Gjør kilden ugyldig hvis operasjonen må avbrytes.

Hold mål-URL-en knyttet til oppslaget. Et PAC-skript kan velge ulike ruter for to verter, så å lagre én oppløst proxy som svar for hver påfølgende destinasjon endrer skriptets policy. På samme måte er en direkte kandidat en eksplisitt rute, ikke et manglende proxy-vertsnavn.

Disse API-ene er nyttige når en egendefinert transport må tolke systeminnstillingene. De implementerer ikke den påfølgende proxyprotokollen for den transporten, og oppslaget henter ikke passord fra Keychain. På macOS matcher du proxy-legitimasjonen i Keychain separat.

Relaterte artikler