Wyszukiwanie proxy w CFNetwork to C-API, którego można używać bezpośrednio z C++; konwersja wszystkiego na obiekty Objective-C jest opcjonalna. Wywołaj CFNetworkCopyProxiesForURL z docelowym CFURL i ustawieniami z CFNetworkCopySystemProxySettings, aby otrzymać uporządkowane słowniki proxy.

WartośćWłasność
Obiekty tworzone lub zwracane przez Copy, w tym trasy i ustawieniaNależą do wywołującego; zwolnij każdy posiadany obiekt różny od null
Słownik z tablicy lub nazwa hosta ze słownika przez GetPożyczone; nie zwalniaj bez uprzedniego zachowania

Dla prawidłowych routes i indeksu w zakresie wyodrębnienie może wyglądać tak:

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

Przeczytaj kCFProxyTypeKey, zanim potraktujesz wpis jako punkt końcowy. Kandydaci bezpośredni i ci z automatycznej konfiguracji wymagają odmiennego traktowania.

Konwertuj nazwę hosta CFString i port CFNumber konkretnego wpisu, dopóki właściciel żyje. Wyodrębnione wartości C++ mogą następnie trafić do konfiguracji transportu. Aby zachować sam CFString po wyniku, najpierw go zachowaj, a później zrównoważ to przez CFRelease; w przeciwnym razie zakończ przed zwolnieniem właściciela, który go zawiera.

Przy sprzątaniu zwolnij utworzony/skopiowany docelowy URL, słownik ustawień i tablicę wyników, w razie potrzeby używając strażnika zakresu. Sam typ CFStringRef zmiennej nie daje własności wyniku Get.

Powiązane artykuły