Het proxy-opzoeken van CFNetwork is een C-API die rechtstreeks vanuit C++ te gebruiken is; alles naar Objective-C-objecten omzetten is optioneel. Roep CFNetworkCopyProxiesForURL aan met de doel-CFURL en instellingen uit CFNetworkCopySystemProxySettings om geordende proxywoordenboeken te krijgen.

WaardeEigendom
Objecten die Copy maakt of retourneert, inclusief routes en instellingenEigendom van de aanroeper; geef elk eigen object dat niet null is vrij
Woordenboek uit de array of hostnaam uit het woordenboek via GetGeleend; geef het niet vrij zonder het eerst te hebben behouden

Voor geldige routes en een index binnen bereik kan het uitlezen er zo uitzien:

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

Lees kCFProxyTypeKey voordat u de vermelding als eindpunt behandelt. Directe en automatisch geconfigureerde kandidaten vereisen een andere behandeling.

Converteer de CFString-hostnaam en CFNumber-poort van een concrete vermelding terwijl de eigenaar in leven blijft. De uitgelezen C++-waarden kunnen daarna in de configuratie van het transport terechtkomen. Om de CFString zelf na het resultaat te behouden, moet u die eerst behouden en dat later met CFRelease in evenwicht brengen; rond anders af voordat u de eigenaar die het bevat vrijgeeft.

Geef bij het opruimen de gemaakte/gekopieerde doel-URL, het instellingenwoordenboek en de resultatenarray vrij, met een scope guard waar dat past. Alleen het CFStringRef-type van een variabele geeft geen eigendom over een Get-resultaat.

Gerelateerde artikelen