Η αναζήτηση proxy του CFNetwork είναι ένα C API που μπορεί να χρησιμοποιηθεί απευθείας από C++· η μετατροπή όλων σε αντικείμενα Objective-C είναι προαιρετική. Καλέστε το CFNetworkCopyProxiesForURL με το CFURL προορισμού και τις ρυθμίσεις από το CFNetworkCopySystemProxySettings για να λάβετε διατεταγμένα λεξικά proxy.

ΤιμήΙδιοκτησία
Αντικείμενα που δημιουργούνται ή επιστρέφονται από το Copy, συμπεριλαμβανομένων διαδρομών και ρυθμίσεωνΑνήκουν στον καλόντα· απελευθερώστε κάθε ιδιόκτητο αντικείμενο που δεν είναι null
Λεξικό από τον πίνακα ή όνομα κεντρικού υπολογιστή από το λεξικό μέσω GetΔανεισμένο· μην το απελευθερώσετε χωρίς να το έχετε κρατήσει

Για έγκυρα routes και δείκτη εντός εύρους, η εξαγωγή μπορεί να είναι:

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

Διαβάστε το kCFProxyTypeKey πριν αντιμετωπίσετε την καταχώριση ως τελικό σημείο. Οι άμεσοι και οι υποψήφιοι αυτόματης διαμόρφωσης απαιτούν διαφορετικό χειρισμό.

Μετατρέψτε το όνομα κεντρικού υπολογιστή CFString και τη θύρα CFNumber μιας συγκεκριμένης καταχώρισης όσο ο ιδιοκτήτης παραμένει ζωντανός. Οι εξαγόμενες τιμές C++ μπορούν στη συνέχεια να μπουν στη διαμόρφωση του μεταφορέα. Για να κρατήσετε το ίδιο το CFString πέρα από το αποτέλεσμα, κρατήστε το πρώτα και αργότερα εξισορροπήστε το με CFRelease· αλλιώς τελειώστε πριν απελευθερώσετε τον ιδιοκτήτη που το περιέχει.

Απελευθερώστε το δημιουργημένο/αντιγραμμένο CFURL προορισμού, το λεξικό ρυθμίσεων και τον πίνακα αποτελεσμάτων στον καθαρισμό, χρησιμοποιώντας φρουρό εμβέλειας όπου αρμόζει. Ο τύπος CFStringRef μιας μεταβλητής από μόνος του δεν παρέχει ιδιοκτησία σε αποτέλεσμα Get.

Σχετικά άρθρα