جست‌وجوی پروکسی CFNetwork یک API به زبان C است که می‌توان آن را مستقیماً از C++ استفاده کرد؛ تبدیل همه چیز به اشیای Objective-C اختیاری است. CFNetworkCopyProxiesForURL را با CFURL مقصد و تنظیمات CFNetworkCopySystemProxySettings فراخوانی کنید تا دیکشنری‌های پروکسی مرتب‌شده به دست آورید.

مقدارمالکیت
اشیایی که Copy ایجاد یا برمی‌گرداند، شامل مسیرها و تنظیماتدر مالکیت فراخوان؛ هر شیء مالکیتی غیرپوچ را آزاد کنید
دیکشنری از آرایه یا نام میزبان از دیکشنری از طریق Getقرض‌گرفته؛ بدون نگه داشتن آزادش نکنید

برای routes معتبر و اندیسی در محدوده، استخراج می‌تواند چنین باشد:

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

پیش از برخورد با ورودی به‌عنوان یک نقطه پایانی، kCFProxyTypeKey را بخوانید. نامزدهای مستقیم و نامزدهای پیکربندی خودکار به برخورد متفاوتی نیاز دارند.

نام میزبان CFString و پورت CFNumber یک ورودی مشخص را در حالی که مالک زنده است تبدیل کنید. مقادیر C++ استخراج‌شده می‌توانند سپس به پیکربندی انتقال‌دهنده وارد شوند. برای نگه داشتن خود CFString پس از نتیجه، ابتدا آن را نگه دارید و بعد با CFRelease توازن کنید؛ در غیر این صورت پیش از آزاد کردن مالک حاوی آن کار را تمام کنید.

هنگام پاک‌سازی، URL مقصد ایجادشده/کپی‌شده، دیکشنری تنظیمات و آرایه نتیجه را آزاد کنید و در صورت لزوم از نگهبان دامنه استفاده کنید. نوع CFStringRef یک متغیر به‌تنهایی مالکیت بر نتیجه Get را نمی‌دهد.

مقالات مرتبط