CFNetwork proxy nəticələrini birbaşa C++ dilində oxumaq
Apple-ın C proxy axtarış API-lərini C++ dilindən istifadə edin və borc alınmış lüğət dəyərlərini məxsus obyekt kimi buraxmadan canlı saxlayın.
CFNetwork-ün proxy axtarışı C++ dilindən birbaşa istifadə oluna bilən C API-dir; hər şeyi Objective-C obyektlərinə çevirmək məcburi deyil. Sifarişli proxy lüğətləri almaq üçün CFNetworkCopyProxiesForURL funksiyasını hədəf CFURL və CFNetworkCopySystemProxySettings parametrləri ilə çağırın.
| Dəyər | Sahiblik |
|---|---|
| Copy tərəfindən yaradılan və ya qaytarılan obyektlər, marşrutlar və parametrlər daxil olmaqla | Çağıranın mülkiyyətindədir; hər boş olmayan sahibli obyekti buraxın |
| Massivdən alınan lüğət və ya Get vasitəsilə lüğətdən alınan host adı | Borc alınmışdır; saxlamadan buraxmayın |
Etibarlı routes və aralıqda olan indeks üçün çıxarış belə ola bilər:
CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
CFDictionaryGetValue(proxy, kCFProxyHostNameKey));
Girişi son nöqtə kimi qəbul etməzdən əvvəl kCFProxyTypeKey oxuyun. Birbaşa və avtomatik-konfiqurasiya namizədləri fərqli rəftar tələb edir.
Sahib canlı qaldıqca konkret girişin CFString host adını və CFNumber portunu çevirin. Çıxarılmış C++ dəyərləri sonra nəqliyyatın konfiqurasiyasına daxil ola bilər. CFString-in özünü nəticədən sonra saxlamaq üçün əvvəlcə onu saxlayın və sonra CFRelease ilə tarazlaşdırın; əks halda onu saxlayan sahibi buraxmazdan əvvəl işi bitirin.
Təmizləmə zamanı yaradılmış/kopyalanmış hədəf URL-i, parametrlər lüğətini və nəticə massivini buraxın, lazım gələrsə əhatə qoruyucusundan istifadə edin. Dəyişənin yalnız CFStringRef tipi Get nəticəsi üzərində sahiblik vermir.