Tətbiqiniz CFNetwork-dan veb sayta necə çatacağını soruşur və .pac ilə bitən URL alır. Həmin host adını soket bağlantısına yerləşdirmək səhv dönüşdür: o, konfiqurasiya skriptini təyin edir.

CFNetworkCopyProxiesForURL hədəf URL üçün sıralanmış lüğətlər massivi qaytarır. Son nöqtə sahələrini oxumadan əvvəl kCFProxyTypeKey yoxlayın. kCFProxyTypeAutoConfigurationURL tipli lüğət kCFProxyAutoConfigurationURLKey təqdim edir və bu, başqa bir qiymətləndirmə addımı tələb edir.

  1. Cari sistem proksi parametrlərini əldə edin və faktiki təyinat URL-i üçün marşrutlar istəyin.
  2. Nəticə PAC URL-inə istinad edirsə, həmin skripti eyni təyinat üçün qiymətləndirin.
  3. Yaranan namizəd növlərini və son nöqtələrini oxuyun. HTTP proksisi, SOCKS proksisi və birbaşa marşrut fərqli bağlantı idarəetməsi tələb edir.
  4. İcazə verilən uğursuzluq və ehtiyat davranışını tətbiq edərkən namizədlərin sırasını qoruyun.

CFNetworkExecuteProxyAutoConfigurationURL skripti yükləyir və asinxron qiymətləndirir. Dərhal qaytarılan dəyər run loop mənbəyidir. Həmin mənbəni planlaşdırın; iş bitdikdən sonra callback qiymətləndirmə nəticəsini və ya xətanı verir. Mənbəni yaradıb dərhal boş nəticə dəyişənini oxumaq heç nəyi gözləmir. Əməliyyat ləğv edilməlidirsə, mənbəni etibarsız edin.

Hədəf URL-i axtarışa bağlı saxlayın. PAC skripti iki host üçün fərqli marşrutlar seçə bilər, ona görə də bir həll edilmiş proksini bütün sonrakı təyinatlar üçün cavab kimi saxlamaq skriptin siyasətini dəyişir. Eyni şəkildə, birbaşa namizəd açıq marşrutdur, itkin proksi host adı deyil.

Bu API-lər fərdi transport sistem parametrlərini şərh etməli olduqda faydalıdır. Onlar həmin transport üçün sonrakı proksi protokolunu həyata keçirmir və axtarış Keychain-dən parolları götürmür. macOS-da proksi etimadnaməsini Keychain-də ayrıca uyğunlaşdırın.

Əlaqəli məqalələr