Αξιολόγηση των URL PAC που επιστρέφει το CFNetworkCopyProxiesForURL
Μετατρέψτε τα αποτελέσματα αυτόματης διαμόρφωσης διακομιστή μεσολάβησης του CFNetwork σε διαδρομές ειδικές για τον προορισμό, χωρίς να μπερδέψετε τη διεύθυνση PAC με το τελικό σημείο του διακομιστή μεσολάβησης.
Η εφαρμογή σας ρωτά το CFNetwork πώς να φτάσει σε έναν ιστότοπο και λαμβάνει ένα URL που τελειώνει σε .pac. Το να βάλετε αυτό το όνομα κεντρικού υπολογιστή στη σύνδεση socket είναι λάθος δρόμος: προσδιορίζει ένα σενάριο διαμόρφωσης.
Το CFNetworkCopyProxiesForURL επιστρέφει ένα διατεταγμένο σύνολο λεξικών για το URL προορισμού. Ελέγξτε το kCFProxyTypeKey πριν διαβάσετε τα πεδία τελικού σημείου. Ένα λεξικό τύπου kCFProxyTypeAutoConfigurationURL παρέχει το kCFProxyAutoConfigurationURLKey, το οποίο απαιτεί άλλο ένα βήμα αξιολόγησης.
- Λάβετε τις τρέχουσες ρυθμίσεις διακομιστή μεσολάβησης του συστήματος και ζητήστε διαδρομές προς το πραγματικό URL προορισμού.
- Όταν ένα αποτέλεσμα αναφέρεται σε URL PAC, αξιολογήστε αυτό το σενάριο για τον ίδιο προορισμό.
- Διαβάστε τους τύπους υποψηφίων και τα τελικά σημεία που προκύπτουν. Ένας διακομιστής μεσολάβησης HTTP, ένας διακομιστής μεσολάβησης SOCKS και μια άμεση διαδρομή απαιτούν διαφορετικό χειρισμό σύνδεσης.
- Διατηρήστε τη σειρά των υποψηφίων κατά την εφαρμογή της επιτρεπόμενης συμπεριφοράς αποτυχίας και εφεδρικής διαδρομής.
Το CFNetworkExecuteProxyAutoConfigurationURL κατεβάζει και αξιολογεί το σενάριο ασύγχρονα. Η άμεση τιμή επιστροφής του είναι μια πηγή run loop. Προγραμματίστε αυτή την πηγή· η επιστροφή κλήσης παρέχει το αποτέλεσμα της αξιολόγησης ή το σφάλμα μετά την ολοκλήρωση της εργασίας. Η δημιουργία της πηγής και η άμεση ανάγνωση μιας κενής μεταβλητής αποτελέσματος δεν περιμένει τίποτα. Ακυρώστε την πηγή αν η λειτουργία πρέπει να ακυρωθεί.
Κρατήστε το URL προορισμού συνδεδεμένο με την αναζήτηση. Ένα σενάριο PAC μπορεί να επιλέξει διαφορετικές διαδρομές για δύο κεντρικούς υπολογιστές, επομένως η αποθήκευση ενός μόνο επιλυμένου διακομιστή μεσολάβησης ως απάντηση για κάθε επόμενο προορισμό αλλάζει την πολιτική του σεναρίου. Ομοίως, ένας άμεσος υποψήφιος είναι ρητή διαδρομή, όχι ένα όνομα κεντρικού υπολογιστή μεσολάβησης που λείπει.
Αυτά τα API είναι χρήσιμα όταν μια προσαρμοσμένη μεταφορά πρέπει να ερμηνεύσει τις ρυθμίσεις του συστήματος. Δεν υλοποιούν το επόμενο πρωτόκολλο μεσολάβησης για αυτή τη μεταφορά, και η αναζήτηση δεν ανακτά κωδικούς πρόσβασης από το Keychain. Στο macOS, αντιστοιχίστε ξεχωριστά το διαπιστευτήριο μεσολάβησης στο Keychain.