Ứng dụng của bạn hỏi CFNetwork cách truy cập một trang web và nhận được URL kết thúc bằng .pac. Đặt tên máy chủ đó vào kết nối socket là sai đường: nó xác định một tập lệnh cấu hình.

CFNetworkCopyProxiesForURL trả về một mảng từ điển có thứ tự cho URL đích. Hãy kiểm tra kCFProxyTypeKey trước khi đọc các trường điểm cuối. Một từ điển loại kCFProxyTypeAutoConfigurationURL cung cấp kCFProxyAutoConfigurationURLKey, đòi hỏi thêm một bước đánh giá.

  1. Lấy cài đặt proxy hiện tại của hệ thống và yêu cầu các tuyến đường đến URL đích thực tế.
  2. Khi một kết quả tham chiếu đến URL PAC, hãy đánh giá tập lệnh đó cho cùng đích đến.
  3. Đọc các loại và điểm cuối của các ứng viên thu được. Proxy HTTP, proxy SOCKS và tuyến trực tiếp cần cách xử lý kết nối khác nhau.
  4. Giữ nguyên thứ tự ứng viên khi áp dụng hành vi thất bại và dự phòng được phép.

CFNetworkExecuteProxyAutoConfigurationURL tải xuống và đánh giá tập lệnh một cách bất đồng bộ. Giá trị trả về ngay lập tức của nó là một nguồn run loop. Lên lịch nguồn đó; lệnh gọi lại cung cấp kết quả đánh giá hoặc lỗi sau khi công việc hoàn tất. Tạo nguồn rồi đọc ngay một biến kết quả rỗng không chờ đợi gì. Vô hiệu hóa nguồn nếu thao tác phải bị hủy.

Giữ URL đích gắn với tra cứu. Tập lệnh PAC có thể chọn các tuyến khác nhau cho hai máy chủ, vì vậy lưu một proxy đã phân giải làm câu trả lời cho mọi đích đến tiếp theo sẽ thay đổi chính sách của tập lệnh. Tương tự, ứng viên trực tiếp là một tuyến đường rõ ràng, không phải tên máy chủ proxy bị thiếu.

Các API này hữu ích khi một lớp truyền tải tùy chỉnh phải diễn giải cài đặt hệ thống. Chúng không triển khai giao thức proxy tiếp theo cho lớp truyền tải đó, và tra cứu không lấy mật khẩu từ Keychain. Trên macOS, hãy đối chiếu riêng thông tin xác thực proxy trong Keychain.

Bài viết liên quan