Pencarian proxy CFNetwork adalah API C yang dapat dipakai langsung dari C++; mengubah semuanya menjadi objek Objective-C bersifat opsional. Panggil CFNetworkCopyProxiesForURL dengan CFURL tujuan dan pengaturan dari CFNetworkCopySystemProxySettings untuk memperoleh dictionary proxy yang terurut.

NilaiKepemilikan
Objek yang dibuat atau dikembalikan Copy, termasuk rute dan pengaturanMilik pemanggil; lepaskan setiap objek milik yang bukan null
Dictionary dari array atau nama host dari dictionary melalui GetDipinjam; jangan dilepaskan tanpa menyimpannya lebih dulu

Untuk routes yang valid dan indeks dalam rentang, ekstraksinya dapat berupa:

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

Baca kCFProxyTypeKey sebelum memperlakukan entri sebagai endpoint. Kandidat langsung dan kandidat konfigurasi otomatis memerlukan penanganan berbeda.

Ubah nama host CFString dan port CFNumber dari entri konkret selama pemiliknya masih hidup. Nilai C++ hasil ekstraksi kemudian dapat masuk ke konfigurasi transport. Untuk menyimpan CFString itu sendiri melewati hasil, simpan dulu lalu imbangi dengan CFRelease; jika tidak, selesaikan sebelum melepaskan pemilik yang memuatnya.

Lepaskan URL tujuan yang dibuat/disalin, dictionary pengaturan, dan array hasil saat pembersihan, gunakan scope guard bila perlu. Tipe CFStringRef pada suatu variabel saja tidak memberikan kepemilikan atas hasil Get.

Artikel terkait