IOS获取代理设置

IOS获取代理设置,ios,proxy,settings,libcurl,Ios,Proxy,Settings,Libcurl,在我的项目中,我使用libcurl通过互联网下载数据。问题是libcurl没有检测到wifi连接的代理设置 我必须手动设置libcurl的设置,所以我想知道a如何获得wifi连接的代理设置。我在钥匙链中找到了一些关于信息的线索,但我无法检索它们 您知道有没有办法获取这些设置,以便我可以为libcurl设置它们 谢谢 我找到了答案 使用这段代码似乎是可行的: std::string getProxyName() { CFDictionaryRef dicRef = CFNetworkCop

在我的项目中,我使用libcurl通过互联网下载数据。问题是libcurl没有检测到wifi连接的代理设置

我必须手动设置libcurl的设置,所以我想知道a如何获得wifi连接的代理设置。我在钥匙链中找到了一些关于信息的线索,但我无法检索它们

您知道有没有办法获取这些设置,以便我可以为libcurl设置它们

谢谢

我找到了答案

使用这段代码似乎是可行的:

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;
}

我还没有尝试自动代理配置,但我希望它能工作

它将IP地址作为字符串提供

(NSString *)proxyName 
{

    CFDictionaryRef dicRef = CFNetworkCopySystemProxySettings();

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

    return  (__bridge NSString *)proxyCFstr;

}