Vaša aplikacija pita CFNetwork kako doći do web stranice i dobija URL koji završava na .pac. Stavljanje tog imena hosta u socket vezu je pogrešan skret: ono označava konfiguracijsku skriptu.

CFNetworkCopyProxiesForURL vraća uređeni niz rječnika za ciljni URL. Provjerite kCFProxyTypeKey prije čitanja polja krajnje tačke. Rječnik tipa kCFProxyTypeAutoConfigurationURL daje kCFProxyAutoConfigurationURLKey, što zahtijeva još jedan korak evaluacije.

  1. Preuzmite trenutne sistemske proxy postavke i zatražite rute do stvarnog URL-a odredišta.
  2. Kada rezultat upućuje na PAC URL, procijenite tu skriptu za isto odredište.
  3. Pročitajte dobijene tipove kandidata i krajnje tačke. HTTP proxy, SOCKS proxy i direktna ruta zahtijevaju različito rukovanje vezom.
  4. Sačuvajte redoslijed kandidata kada primjenjujete dopušteno ponašanje neuspjeha i rezervne opcije.

CFNetworkExecuteProxyAutoConfigurationURL preuzima i procjenjuje skriptu asinhrono. Njegova neposredna povratna vrijednost je izvor petlje događaja. Zakažite taj izvor; povratni poziv daje rezultat evaluacije ili grešku nakon završetka posla. Stvaranje izvora i trenutno čitanje prazne varijable rezultata ništa ne čeka. Poništite izvor ako se operacija mora otkazati.

Držite ciljni URL vezan za 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, direktni kandidat je eksplicitna ruta, a ne nedostajuće ime proxy hosta.

Ovi API-ji su korisni kada prilagođeni transport mora tumačiti sistemske postavke. Oni ne implementiraju sljedeći proxy protokol za taj transport, a pretraga ne preuzima lozinke iz Keychaina. Na macOS-u zasebno uskladite proxy akreditive u Keychainu.

Povezani članci