CFNetwork:s proxyuppslag är ett C-API som kan användas direkt från C++; att konvertera allt till Objective-C-objekt är valfritt. Anropa CFNetworkCopyProxiesForURL med mål-CFURL:en och inställningar från CFNetworkCopySystemProxySettings för att få ordnade proxyordböcker.

VärdeÄgande
Objekt som skapas eller returneras av Copy, inklusive rutter och inställningarÄgs av anroparen; frigör varje ägt objekt som inte är null
Ordbok från arrayen eller värdnamn från ordboken via GetLånat; frigör inte utan att ha behållit det

För giltiga routes och ett index inom intervallet kan uttaget se ut så här:

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

Läs kCFProxyTypeKey innan du behandlar posten som en slutpunkt. Direkta och automatiskt konfigurerade kandidater kräver olika hantering.

Konvertera en konkret posts CFString-värdnamn och CFNumber-port medan ägaren är vid liv. Uttagna C++-värden kan sedan gå in i transportens konfiguration. För att behålla själva CFString bortom resultatet, behåll det först och balansera det senare med CFRelease; annars avsluta innan du frigör ägaren som innehåller det.

Frigör den skapade/kopierade mål-URL:en, inställningsordboken och resultatarrayen vid städning, och använd en scope guard om det passar. En variabels CFStringRef-typ ensam ger inte ägande över ett Get-resultat.

Relaterade artiklar