Jūsų programa klausia CFNetwork, kaip pasiekti svetainę, ir gauna URL, kuris baigiasi .pac. To prieglobos vardo įrašymas į socket ryšį yra neteisingas kelias: jis nurodo konfigūracijos scenarijų.

CFNetworkCopyProxiesForURL grąžina tvarkingą žodynų masyvą tiksliniam URL. Prieš skaitydami galinio taško laukus patikrinkite kCFProxyTypeKey. kCFProxyTypeAutoConfigurationURL tipo žodynas pateikia kCFProxyAutoConfigurationURLKey, kuriam reikia dar vieno vertinimo žingsnio.

  1. Gaukite dabartinius sistemos tarpinio serverio nustatymus ir paprašykite maršrutų į tikrąjį paskirties URL.
  2. Kai rezultatas nurodo PAC URL, įvertinkite tą scenarijų tam pačiam tikslui.
  3. Perskaitykite gautų kandidatų tipus ir galinius taškus. HTTP tarpinis serveris, SOCKS tarpinis serveris ir tiesioginis maršrutas reikalauja skirtingo ryšio apdorojimo.
  4. Išsaugokite kandidatų tvarką taikydami leistiną gedimo ir atsarginį elgesį.

CFNetworkExecuteProxyAutoConfigurationURL atsisiunčia ir įvertina scenarijų asinchroniškai. Jo tiesioginė grąžinimo reikšmė yra run loop šaltinis. Suplanuokite tą šaltinį; atgalinis iškvietimas pateikia vertinimo rezultatą arba klaidą, kai darbas baigiamas. Sukūrus šaltinį ir iš karto perskaičius tuščią rezultato kintamąjį nieko nelaukiama. Panaikinkite šaltinį, jei operaciją reikia atšaukti.

Laikykite tikslinį URL susietą su užklausa. PAC scenarijus gali pasirinkti skirtingus maršrutus dviem prieglobos serveriams, todėl vieno išspręsto tarpinio serverio saugojimas kaip atsakymas į kiekvieną vėlesnį tikslą pakeičia scenarijaus politiką. Taip pat tiesioginis kandidatas yra aiškus maršrutas, o ne trūkstamas tarpinio serverio prieglobos vardas.

Šios API naudingos, kai pasirinktinis transportas turi interpretuoti sistemos nustatymus. Jos neįgyvendina tolesnio to transporto tarpinio serverio protokolo, o užklausa nerenka slaptažodžių iš Keychain. macOS sistemoje atskirai suderinkite tarpinio serverio kredencialus Keychain.

Susiję straipsniai