Vlerësoni URL-të PAC që kthen CFNetworkCopyProxiesForURL
Ktheni rezultatet e konfigurimit automatik të proxy-t të CFNetwork në rrugë specifike për destinacionin pa e ngatërruar adresën PAC me pikën fundore të proxy-t.
Aplikacioni juaj pyet CFNetwork se si të arrijë një faqe interneti dhe merr një URL që mbaron me .pac. Vendosja e atij emri host në lidhjen socket është rrugë e gabuar: ai identifikon një skript konfigurimi.
CFNetworkCopyProxiesForURL kthen një varg të renditur fjalorësh për URL-në e synuar. Kontrolloni kCFProxyTypeKey përpara se të lexoni fushat e pikës fundore. Një fjalor i tipit kCFProxyTypeAutoConfigurationURL siguron kCFProxyAutoConfigurationURLKey, i cili kërkon një hap tjetër vlerësimi.
- Merrni cilësimet aktuale të proxy-t të sistemit dhe kërkoni rrugë drejt URL-së reale të destinacionit.
- Kur një rezultat i referohet një URL PAC, vlerësoni atë skript për të njëjtin destinacion.
- Lexoni tipet dhe pikat fundore të kandidatëve që rezultojnë. Një proxy HTTP, një proxy SOCKS dhe një rrugë e drejtpërdrejtë kërkojnë trajtim të ndryshëm të lidhjes.
- Ruani rendin e kandidatëve kur zbatoni sjelljen e lejuar të dështimit dhe të rezervës.
CFNetworkExecuteProxyAutoConfigurationURL shkarkon dhe vlerëson skriptin në mënyrë asinkrone. Vlera e tij e menjëhershme e kthimit është një burim run loop. Planifikoni atë burim; kthimi i thirrjes jep rezultatin e vlerësimit ose gabimin pasi puna përfundon. Krijimi i burimit dhe leximi i menjëhershëm i një ndryshoreje rezultati të zbrazët nuk pret asgjë. Pavlefshoni burimin nëse operacioni duhet anuluar.
Mbajeni URL-në e synuar të lidhur me kërkimin. Një skript PAC mund të zgjedhë rrugë të ndryshme për dy host-e, prandaj ruajtja e një proxy-t të vetëm të zgjidhur si përgjigje për çdo destinacion pasues ndryshon politikën e skriptit. Po ashtu, një kandidat i drejtpërdrejtë është rrugë e qartë, jo një emër host proxy që mungon.
Këto API janë të dobishme kur një transport i personalizuar duhet të interpretojë cilësimet e sistemit. Ato nuk zbatojnë protokollin pasues të proxy-t për atë transport, dhe kërkimi nuk merr fjalëkalime nga Keychain. Në macOS, përputhni veçmas kredencialin e proxy-t në Keychain.