2012-09-25 20 views
7

मेरी प्रोजेक्ट में मैं इंटरनेट पर डेटा डाउनलोड करने के लिए libcurl का उपयोग कर रहा हूं। समस्या यह है कि libcurl वाईफाई कनेक्शन की प्रॉक्सी सेटिंग्स का पता नहीं लगाता है।आईओएस प्रॉक्सी सेटिंग्स प्राप्त करें

मुझे मैन्युअल रूप से libcurl के लिए सेटिंग्स सेट करनी होगी, इसलिए मुझे आश्चर्य है कि वाईफ़ाई कनेक्शन की प्रॉक्सी सेटिंग्स कैसे प्राप्त हो सकती है। मुझे KeyChain में सूचनाओं के बारे में कुछ सुराग मिले लेकिन मैं उन्हें पुनः प्राप्त करने में असमर्थ था।

क्या आप जानते हैं कि इस सेटिंग को पाने का कोई तरीका है तो मैं उन्हें libcurl के लिए सेट कर सकता हूं?

धन्यवाद!

उत्तर

7

मुझे प्रतिक्रिया मिली!

का उपयोग कोड के इस बिट काम करने के लिए लगता है:

std::string getProxyName() 
{ 
    CFDictionaryRef dicRef = CFNetworkCopySystemProxySettings(); 
    const CFStringRef proxyCFstr = (const CFStringRef)CFDictionaryGetValue(dicRef, (const void*)kCFNetworkProxiesHTTPProxy); 
    char buffer[4096]; 
    memset(buffer, 0, 4096); 
    if (CFStringGetCString(proxyCFstr, buffer, 4096, kCFStringEncodingUTF8)) 
    { 
     return std::string(buffer); 
    } 
    return ""; 
} 


int CDownloadThread::getProxyPort() 
{ 
    CFDictionaryRef dicRef = CFNetworkCopySystemProxySettings(); 
    const CFNumberRef portCFnum = (const CFNumberRef)CFDictionaryGetValue(dicRef, (const void*)kCFNetworkProxiesHTTPPort); 

    SInt32 port; 
    if (CFNumberGetValue(portCFnum, kCFNumberSInt32Type, &port)) 
    { 
     return port; 
    } 
    return -1; 
} 

मैं स्वचालित प्रॉक्सी कॉन्फ़िगरेशन के साथ की कोशिश नहीं की है, लेकिन मैं अभी तक आशा है कि यह काम कर रहा है!

1

यह आईपी पता स्ट्रिंग के रूप में देगा।

(NSString *)proxyName 
{ 

    CFDictionaryRef dicRef = CFNetworkCopySystemProxySettings(); 

    const CFStringRef proxyCFstr = (const CFStringRef)CFDictionaryGetValue(dicRef, 
            (const void*)kCFNetworkProxiesHTTPProxy); 

    return (__bridge NSString *)proxyCFstr; 

} 
संबंधित मुद्दे