CFNetwork-proxyopslag er en C-API, der kan bruges direkte fra C++; det er valgfrit at konvertere alt til Objective-C-objekter. Kald CFNetworkCopyProxiesForURL med mål-CFURL'en og indstillinger fra CFNetworkCopySystemProxySettings for at få ordnede proxyordbøger.

VærdiEjerskab
Objekter, der oprettes eller returneres af Copy, inklusive ruter og indstillingerEjet af kalderen; frigiv hvert ejet objekt, der ikke er null
Ordbog fra arrayet eller værtsnavn fra ordbogen via GetLånt; frigiv ikke, uden at du har beholdt det

For gyldige routes og et indeks inden for området kan udtrækket være:

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

Læs kCFProxyTypeKey, før du behandler posten som et endepunkt. Direkte og automatisk konfigurerede kandidater kræver forskellig håndtering.

Konverter en konkret posts CFString-værtsnavn og CFNumber-port, mens ejeren er i live. Udtrådte C++-værdier kan derefter indgå i transportens konfiguration. For at beholde selve CFString ud over resultatet skal du først beholde det og senere afbalancere det med CFRelease; ellers skal du være færdig, før du frigiver ejeren, der indeholder det.

Frigiv den oprettede/kopierede mål-URL, indstillingsordbogen og resultatarrayet ved oprydning, og brug en scope guard, hvis det er passende. En variabels CFStringRef-type alene giver ikke ejerskab over et Get-resultat.

Relaterede artikler