Procijenite PAC URL-ove koje vraća CFNetworkCopyProxiesForURL
Pretvorite rezultate automatske proxy konfiguracije CFNetworka u rute specifične za odredište bez zamjene PAC adrese sa završnom točkom proxyja.
Vaša aplikacija pita CFNetwork kako doći do web-mjesta i dobiva URL koji završava na .pac. Stavljanje tog naziva hosta u socket vezu pogrešan je korak: on označava skriptu konfiguracije.
CFNetworkCopyProxiesForURL vraća uređeni niz rječnika za ciljni URL. Provjerite kCFProxyTypeKey prije čitanja polja završne točke. Rječnik vrste kCFProxyTypeAutoConfigurationURL daje kCFProxyAutoConfigurationURLKey, koji zahtijeva još jedan korak procjene.
- Dohvatite trenutne sistemske proxy postavke i zatražite rute do stvarnog odredišnog URL-a.
- Kada se rezultat odnosi na PAC URL, procijenite tu skriptu za isto odredište.
- Pročitajte vrste i završne točke dobivenih kandidata. HTTP proxy, SOCKS proxy i izravna ruta zahtijevaju različito rukovanje vezom.
- Sačuvajte redoslijed kandidata pri primjeni dopuštenog ponašanja kvara i rezerve.
CFNetworkExecuteProxyAutoConfigurationURL preuzima i procjenjuje skriptu asinkrono. Njegova neposredna povratna vrijednost je izvor run loopa. Zakažite taj izvor; povratni poziv daje rezultat procjene ili pogrešku nakon završetka posla. Stvaranje izvora i trenutačno čitanje prazne varijable rezultata ne čeka ništa. Poništite izvor ako se operacija mora otkazati.
Držite ciljni URL vezan uz pretragu. PAC skripta može odabrati različite rute za dva hosta, pa pohranjivanje jednog razriješenog proxyja kao odgovora za svako sljedeće odredište mijenja politiku skripte. Isto tako, izravni kandidat je izričita ruta, a ne nedostajući naziv proxy hosta.
Ovi API-ji korisni su kada prilagođeni prijenos mora tumačiti sistemske postavke. Ne implementiraju sljedeći proxy protokol za taj prijenos i pretraga ne dohvaća zaporke iz Keychaina. Na macOS-u posebno uskladite vjerodajnicu proxyja u Keychainu.