Arvioi CFNetworkCopyProxiesForURL-funktion palauttamat PAC-URL-osoitteet
Muunna CFNetworkin automaattisen välityspalvelimen konfiguroinnin tulokset kohdekohtaisiksi reiteiksi sekoittamatta PAC-osoitetta välityspalvelimen päätepisteeseen.
Sovelluksesi kysyy CFNetworkilta, miten verkkosivustolle päästään, ja saa URL-osoitteen, joka päättyy .pac. Sen isäntänimen laittaminen socket-yhteyteen on väärä reitti: se yksilöi konfigurointiskriptin.
CFNetworkCopyProxiesForURL palauttaa kohde-URL-osoitteelle järjestetyn taulukon sanakirjoja. Tarkista kCFProxyTypeKey ennen päätepisteen kenttien lukemista. Tyypin kCFProxyTypeAutoConfigurationURL sanakirja antaa kCFProxyAutoConfigurationURLKey, joka vaatii vielä yhden arviointivaiheen.
- Hanki järjestelmän nykyiset välityspalvelinasetukset ja pyydä reitit todelliseen kohde-URL-osoitteeseen.
- Kun tulos viittaa PAC-URL-osoitteeseen, arvioi kyseinen skripti samalle kohteelle.
- Lue tuloksena olevat ehdokastyypit ja päätepisteet. HTTP-välityspalvelin, SOCKS-välityspalvelin ja suora reitti vaativat erilaisen yhteyden käsittelyn.
- Säilytä ehdokkaiden järjestys, kun sovellat sallittua virhe- ja varakäyttäytymistä.
CFNetworkExecuteProxyAutoConfigurationURL lataa ja arvioi skriptin asynkronisesti. Sen välitön paluuarvo on run loop -lähde. Ajoita tämä lähde. Takaisinkutsu antaa arviointituloksen tai virheen, kun työ on valmis. Lähteen luominen ja tyhjän tulosmuuttujan lukeminen heti ei odota mitään. Mitätöi lähde, jos toiminto on peruutettava.
Pidä kohde-URL-osoite hakemukseen liitettynä. PAC-skripti voi valita kahta isäntää varten eri reitit, joten yhden ratkaistun välityspalvelimen tallentaminen vastaukseksi kaikille myöhemmille kohteille muuttaa skriptin käytäntöä. Samoin suora ehdokas on nimenomainen reitti, ei puuttuva välityspalvelimen isäntänimi.
Nämä API:t ovat hyödyllisiä, kun mukautetun siirtokerroksen on tulkittava järjestelmäasetuksia. Ne eivät toteuta kyseisen siirtokerroksen seuraavaa välityspalvelinprotokollaa, eikä haku nouda salasanoja Keychainista. macOSissa sovita välityspalvelimen tunnistetiedot Keychainissa erikseen.