La vostra aplicació pregunta a CFNetwork com arribar a un lloc web i obté un URL que acaba en .pac. Posar aquest nom d'amfitrió a la connexió de socket és un gir equivocat: identifica un script de configuració.

CFNetworkCopyProxiesForURL retorna una matriu ordenada de diccionaris per a l'URL de destinació. Inspeccioneu kCFProxyTypeKey abans de llegir els camps del punt final. Un diccionari de tipus kCFProxyTypeAutoConfigurationURL proporciona kCFProxyAutoConfigurationURLKey, que requereix un altre pas d'avaluació.

  1. Obteniu la configuració de proxy actual del sistema i demaneu rutes cap a l'URL de destinació real.
  2. Quan un resultat fa referència a un URL PAC, avalueu aquest script per a la mateixa destinació.
  3. Llegiu els tipus de candidat i els punts finals resultants. Un proxy HTTP, un proxy SOCKS i una ruta directa requereixen un maneig de connexió diferent.
  4. Conserveu l'ordre dels candidats en aplicar el comportament de fallada i retrocés permès.

CFNetworkExecuteProxyAutoConfigurationURL baixa i avalua el script de manera asíncrona. El seu valor de retorn immediat és una font de bucle d'execució. Programeu aquesta font; la devolució de trucada proporciona el resultat de l'avaluació o l'error quan l'operació acaba. Crear la font i llegir immediatament una variable de resultat buida no espera res. Invalideu la font si l'operació s'ha de cancel·lar.

Mantingueu l'URL de destinació lligat a la consulta. Un script PAC pot triar rutes diferents per a dos amfitrions, de manera que desar un únic proxy resolt com a resposta per a cada destinació posterior canvia la política del script. Igualment, un candidat directe és una ruta explícita, no un nom d'amfitrió de proxy absent.

Aquestes API són útils quan un transport personalitzat ha d'interpretar la configuració del sistema. No implementen el protocol de proxy posterior per a aquest transport, i la consulta no recupera contrasenyes del Keychain. A macOS, feu coincidir les credencials del proxy al Keychain per separat.

Articles relacionats