La cerca de proxy de CFNetwork és una API C que es pot utilitzar directament des de C++; convertir-ho tot en objectes Objective-C és opcional. Crideu CFNetworkCopyProxiesForURL amb el CFURL objectiu i la configuració de CFNetworkCopySystemProxySettings per obtenir diccionaris de proxy ordenats.

ValorPropietat
Objectes creats o retornats per Copy, incloent-hi rutes i configuracióPropietat del cridador; allibereu cada objecte propi no nul
Diccionari de la matriu o nom d'amfitrió del diccionari mitjançant GetManllevat; no l'allibereu sense haver-lo retingut

Per a routes vàlids i un índex dins del rang, l'extracció pot ser:

CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
    CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
    CFDictionaryGetValue(proxy, kCFProxyHostNameKey));

Llegiu kCFProxyTypeKey abans de tractar l'entrada com a punt final. Els candidats directes i els d'autoconfiguració requereixen un tractament diferent.

Convertiu el nom d'amfitrió CFString i el port CFNumber d'una entrada concreta mentre el propietari continua viu. Els valors C++ extrets poden entrar després a la configuració del transport. Per retenir el CFString mateix més enllà del resultat, reteniu-lo primer i després compenseu-ho amb CFRelease; altrament, acabeu abans d'alliberar el propietari que el conté.

Allibereu l'URL objectiu creat/copiat, el diccionari de configuració i la matriu de resultats en netejar, fent servir un guard d'àmbit si escau. El tipus CFStringRef d'una variable per si sol no atorga propietat sobre un resultat de Get.

Articles relacionats