Suriin ang mga PAC URL na ibinabalik ng CFNetworkCopyProxiesForURL
Gawing mga rutang espesipiko sa destinasyon ang mga resulta ng awtomatikong proxy configuration ng CFNetwork nang hindi napagkakamalang endpoint ng proxy ang address ng PAC.
Nagtatanong ang app mo sa CFNetwork kung paano maabot ang isang website at nakakatanggap ng URL na nagtatapos sa .pac. Ang ilagay ang hostname na iyon sa koneksyong socket ay maling daan: tinutukoy nito ang isang script ng configuration.
Nagbabalik ang CFNetworkCopyProxiesForURL ng nakaayos na array ng mga diksyunaryo para sa target na URL. Suriin ang kCFProxyTypeKey bago basahin ang mga field ng endpoint. Ang diksyunaryong may uri na kCFProxyTypeAutoConfigurationURL ay nagbibigay ng kCFProxyAutoConfigurationURLKey, na nangangailangan ng isa pang hakbang ng pagsusuri.
- Kunin ang kasalukuyang mga setting ng proxy ng system at humiling ng mga ruta patungo sa tunay na destinasyong URL.
- Kapag tumutukoy ang isang resulta sa isang PAC URL, suriin ang script na iyon para sa parehong destinasyon.
- Basahin ang mga uri at endpoint ng mga kandidatong lumabas. Ang proxy na HTTP, proxy na SOCKS at direktang ruta ay nangangailangan ng magkaibang paghawak ng koneksyon.
- Panatilihin ang pagkakasunod-sunod ng mga kandidato kapag inilalapat ang pinapayagang pag-uugali sa pagkabigo at fallback.
Dinodownload at sinusuri ng CFNetworkExecuteProxyAutoConfigurationURL ang script nang asinkroniko. Ang agaran nitong return value ay isang source ng run loop. I-iskedyul ang source na iyon; ibinibigay ng callback ang resulta ng pagsusuri o ang error kapag natapos na ang trabaho. Ang paggawa ng source at agad na pagbasa ng walang laman na variable ng resulta ay walang hinihintay. Imbalido ang source kung kailangang kanselahin ang operasyon.
Panatilihing nakakabit sa lookup ang target na URL. Maaaring pumili ang script ng PAC ng magkaibang ruta para sa dalawang host, kaya ang pag-iimbak ng isang naresolbang proxy bilang sagot sa bawat susunod na destinasyon ay nagbabago sa patakaran ng script. Gayundin, ang direktang kandidato ay hayagang ruta, hindi nawawalang hostname ng proxy.
Kapaki-pakinabang ang mga API na ito kapag kailangang bigyang-kahulugan ng custom na transport ang mga setting ng system. Hindi nila ipinapatupad ang susunod na protocol ng proxy para sa transport na iyon, at hindi kumukuha ng mga password ang lookup mula sa Keychain. Sa macOS, itugma nang hiwalay ang kredensyal ng proxy sa Keychain.