Utvärdera PAC-URL:er som CFNetworkCopyProxiesForURL returnerar
Omvandla CFNetworks automatiska proxykonfiguration till rutter som är specifika för varje mål, utan att förväxla PAC-adressen med proxyns slutpunkt.
Din app frågar CFNetwork hur en webbplats nås och får en URL som slutar på .pac. Att sätta det värdnamnet i socket-anslutningen är fel väg: det identifierar ett konfigurationsskript.
CFNetworkCopyProxiesForURL returnerar en ordnad array av ordböcker för mål-URL:en. Granska kCFProxyTypeKey innan du läser slutpunktens fält. En ordbok av typen kCFProxyTypeAutoConfigurationURL tillhandahåller kCFProxyAutoConfigurationURLKey, vilket kräver ytterligare ett utvärderingssteg.
- Hämta systemets aktuella proxyinställningar och begär rutter till den faktiska mål-URL:en.
- När ett resultat hänvisar till en PAC-URL, utvärdera det skriptet för samma mål.
- Läs typerna och slutpunkterna för de kandidater som blir resultatet. En HTTP-proxy, en SOCKS-proxy och en direkt rutt kräver olika anslutningshantering.
- Bevara kandidaternas ordning när du tillämpar det tillåtna fel- och reservbeteendet.
CFNetworkExecuteProxyAutoConfigurationURL hämtar och utvärderar skriptet asynkront. Dess omedelbara returvärde är en run loop-källa. Schemalägg den källan; återanropet levererar utvärderingsresultatet eller felet när arbetet är klart. Att skapa källan och direkt läsa en tom resultatvariabel väntar inte på något. Ogiltigförklara källan om åtgärden måste avbrytas.
Håll mål-URL:en kopplad till uppslaget. Ett PAC-skript kan välja olika rutter för två värdar, så att lagra en enda upplöst proxy som svar för varje efterföljande mål ändrar skriptets policy. På samma sätt är en direkt kandidat en uttrycklig rutt, inte ett saknat proxyvärdnamn.
Dessa API:er är användbara när en anpassad transport måste tolka systeminställningarna. De implementerar inte det efterföljande proxyprotokollet för den transporten, och uppslaget hämtar inte lösenord från Keychain. I macOS matchar du proxyautentiseringsuppgiften i Keychain separat.